Plover Wiki plover_wiki https://plover.wiki/index.php/Plover_Wiki MediaWiki 1.41.0 first-letter Media Special Talk User User talk Plover Wiki Plover Wiki talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Module Module talk Translations Translations talk Template:Tl 10 1549 2326 2021-02-12T22:03:00Z wikipedia>Anthony Appleyard 0 Anthony Appleyard moved page [[Template:Tl]] to [[Template:Template link]]: [[Special:Permalink/1006428669|Requested]] by Buidhe at [[WP:RM/TR]]: RM closed as move wikitext text/x-wiki #REDIRECT [[Template:Template link]] {{Redirect category shell| {{R from move}} }} d6593bb3b4a866249f55d0f34b047a71fe1f1529 MediaWiki:Mainpage 8 2 6 2024-02-04T16:52:55Z Rice 1 Created page with "Plover" wikitext text/x-wiki Plover 5536da1ca40af40fb33533574842993ab4cdf40b Plover Wiki 0 3 8 2024-02-04T16:54:43Z Rice 1 Created page with "Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. - [[Beginner's Guide: Get Started with Plover]] === The Open Steno Project === Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project..." wikitext text/x-wiki Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. - [[Beginner's Guide: Get Started with Plover]] === The Open Steno Project === Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. da3e80ff0a0c0280619da57471716fe929c20288 9 8 2024-02-04T17:11:31Z Rice 1 wikitext text/x-wiki Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. - [[Beginner's Guide: Get Started with Plover]] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 79f42877f241b6de1db3b0d56271264e8587e2c0 10 9 2024-02-04T17:24:17Z Rice 1 wikitext text/x-wiki Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. - [[Beginner's Guide: Get Started with Plover]] [[#the-open-steno-project The Open Steno Project]] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. b9bdbddcc92e987b9ac4c1d9ba6a96aeb740c6c9 11 10 2024-02-04T17:26:41Z Rice 1 wikitext text/x-wiki Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. - [[Beginner's Guide: Get Started with Plover]] [[Plover#The Open Steno Project|The Open Steno Project]] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 077c1562eb30a7f84d14c8380ad73020551164ac 12 11 2024-02-04T17:54:08Z Rice 1 wikitext text/x-wiki Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. - [[Beginner's Guide: Get Started with Plover]] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 79f42877f241b6de1db3b0d56271264e8587e2c0 13 12 2024-02-04T18:22:52Z Rice 1 wikitext text/x-wiki Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. - [[Beginner's Guide: Get Started with Plover]] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. [Open Steno Project](http://openstenoproject.org) c3f9a4e71928a706a27444711aeeddfaa3e961ea 14 13 2024-02-04T18:28:22Z Rice 1 wikitext text/x-wiki Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. - [[Beginner's Guide: Get Started with Plover]] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. <markdown> [Open Steno Project](http://openstenoproject.org) </markdown> 0efeb664fb55eedcc5267b9ea4b1a7828f614dc7 15 14 2024-02-04T18:30:16Z Rice 1 wikitext text/x-wiki Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. - [[Beginner's Guide|Beginner's Guide: Get Started with Plover]] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. ff3d4692bfc31db0b39ebb6626715f928fff1f44 40 15 2024-02-05T03:15:22Z Rice 1 wikitext text/x-wiki Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 0756a666a55626fd17f578777a4220be83148b3e 42 40 2024-02-05T15:25:00Z Rice 1 wikitext text/x-wiki [[File:Https://raw.githubusercontent.com/openstenoproject/plover/main/doc/ static/dolores.svg|frameless|center|alt=An illustration of a plover (bird) with one wing's underside displaying a steno key layout in its feathers|Dolores, the mascot of Plover]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. f11d87c6f1ddc23d744e394feb45efab9d34331b 43 42 2024-02-05T15:28:56Z Rice 1 wikitext text/x-wiki <p align="center"> <img width="300" alt="Plover logo" src="https://raw.githubusercontent.com/openstenoproject/plover/main/doc/_static/dolores.svg" /> </p> Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 81382560123d8ca5bba08bd2ada27fa5780fe52c 44 43 2024-02-05T15:30:30Z Rice 1 wikitext text/x-wiki <markdown> ![](https://raw.githubusercontent.com/openstenoproject/plover/main/doc/_static/dolores.svg) </markdown> Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 7866f8a1bf74f855f9e66f6095771b48f2cd377d 45 44 2024-02-05T15:31:45Z Rice 1 wikitext text/x-wiki Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 0756a666a55626fd17f578777a4220be83148b3e 47 45 2024-02-05T15:42:32Z Rice 1 wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|left|thumb]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. a17a9ecdf309c1d0ee97d5232776f13a2fbf431a 48 47 2024-02-05T15:43:43Z Rice 1 wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|thumb|center]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 4fa3843612cbd4f76d74bcacfde11d5eaab24b65 49 48 2024-02-05T15:45:22Z Rice 1 wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|left|frameless|Dolores, the Plover mascot]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. b938bd614176418fae24037389f3730198040340 50 49 2024-02-05T15:45:41Z Rice 1 wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|left|frameless|Dolores, the Plover mascot|213x213px]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 0dddffde5d159fc96ed40590360d449f806a3171 51 50 2024-02-05T15:45:49Z Rice 1 wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|left|frameless|Dolores, the Plover mascot|193x193px]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 0863064c6b17946d9a5d337a3fdd6ef6673b1fdf Beginner's Guide 0 4 16 2024-02-04T18:32:01Z Rice 1 Created page with "<markdown> This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge. ## Overview The main steps are: 1. [Download and install the Plover application.](#download-and-install-plover) 1. [Connect a compatible keyboard or stenography (steno) machine.](#connect-a-compatible-keyboard-or-stenography-machine) 1. [Confirm it's working.](#confirm-its-working) 1. [Practice and learn st..." wikitext text/x-wiki <markdown> This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge. ## Overview The main steps are: 1. [Download and install the Plover application.](#download-and-install-plover) 1. [Connect a compatible keyboard or stenography (steno) machine.](#connect-a-compatible-keyboard-or-stenography-machine) 1. [Confirm it's working.](#confirm-its-working) 1. [Practice and learn stenography using Plover.](#practice-and-learn) ## Download and Install Plover Plover works on **Windows, Mac, and Linux**. * [**Download and install Plover with the Installation Guide 🚀**](https://github.com/openstenoproject/plover/wiki/Installation-Guide) * If you get stuck, see the [troubleshooting guide](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues). ## Connect a compatible keyboard or stenography machine Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard) * [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard) * [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use) * [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover) * [Use a professional stenography machine](#use-a-professional-stenography-machine) ### Use a standard QWERTY keyboard If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. #### Arpeggiate With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. ![Arpeggiate gif](https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif) To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done. ![arpeggiate option](https://github.com/openstenoproject/plover/assets/52895314/5467e672-7306-43d8-83fb-6f771a5802ef) #### Rolling your strokes By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. ![](https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif) Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working). ### Use an N-key rollover (NKRO) QWERTY keyboard An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [confirm it's working](#confirm-its-working). #### Which NKRO keyboard should I get? Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards). * See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose) ### Adapt a keyboard for steno use Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers) * [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps) You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout). ### Use a machine designed for use with Plover Various steno enthusiasts are making and selling machines designed for use with Plover: * [Ecosteno*](https://nolltronics.com/product/ecosteno/) * [Multisteno*](https://nolltronics.com/product/multisteno/) * [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard) * [Splitography*](https://softhruf.love/products/soft-hruf-erl) * [Starboard*](https://www.stenography.store/) * [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html) * [The Uni*](https://stenokeyboards.com/) (* = External link) More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover). ### Use a professional stenography machine Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. ## Confirm it's working Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR. ### Keyboard By default, Plover will use your keyboard as its input device. 1. Run Plover. 1. Click the Output: **Enable** radio button. ### Write "Hello World" To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. > NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. | Output | Steno Key Stroke | QWERTY Keys | | ---- | ---- | ---- | | hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) | | o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) | | , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) | | world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) | | . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) | If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine) * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO #### Practice sentences You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website. #### Use the correct body posture and finger placement Your fingers should be curled slightly, so you press the keys using the tips of your fingers. ![Steno keys on QWERTY keyboard](https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png) On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place. | QWERTY layout|Maps to steno layout | |:---:|:---:| |`QWER TY UIOP[`|`STPH ** FPLTD`| |`ASDF GH JKL;`|`SKWR ** RBGSZ`| |`CV NM`|`AO EU`| See also: * [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo) * [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU) ### Stenography machine Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: 1. Run Plover and click the **Enable** radio button. 1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears. 1. On the **Machine** tab, select the protocol your machine uses. 1. Click **Save**. See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information. ## Practice and learn It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography). ### Which steno theory should you learn? There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki). **We recommend learning either Plover theory or Lapwing theory.** Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch. </markdown> 97b1a876fdfc56502ca41a5964c8023c6394f91d 17 16 2024-02-04T18:33:42Z Rice 1 wikitext text/x-wiki <markdown> This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge. ## Overview The main steps are: 1. [Download and install the Plover application.](#Download_and_Install_Plover) 1. [Connect a compatible keyboard or stenography (steno) machine.](#connect-a-compatible-keyboard-or-stenography-machine) 1. [Confirm it's working.](#confirm-its-working) 1. [Practice and learn stenography using Plover.](#practice-and-learn) ## Download and Install Plover Plover works on **Windows, Mac, and Linux**. * [**Download and install Plover with the Installation Guide 🚀**](https://github.com/openstenoproject/plover/wiki/Installation-Guide) * If you get stuck, see the [troubleshooting guide](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues). ## Connect a compatible keyboard or stenography machine Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard) * [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard) * [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use) * [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover) * [Use a professional stenography machine](#use-a-professional-stenography-machine) ### Use a standard QWERTY keyboard If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. #### Arpeggiate With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. ![Arpeggiate gif](https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif) To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done. ![arpeggiate option](https://github.com/openstenoproject/plover/assets/52895314/5467e672-7306-43d8-83fb-6f771a5802ef) #### Rolling your strokes By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. ![](https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif) Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working). ### Use an N-key rollover (NKRO) QWERTY keyboard An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [confirm it's working](#confirm-its-working). #### Which NKRO keyboard should I get? Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards). * See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose) ### Adapt a keyboard for steno use Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers) * [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps) You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout). ### Use a machine designed for use with Plover Various steno enthusiasts are making and selling machines designed for use with Plover: * [Ecosteno*](https://nolltronics.com/product/ecosteno/) * [Multisteno*](https://nolltronics.com/product/multisteno/) * [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard) * [Splitography*](https://softhruf.love/products/soft-hruf-erl) * [Starboard*](https://www.stenography.store/) * [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html) * [The Uni*](https://stenokeyboards.com/) (* = External link) More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover). ### Use a professional stenography machine Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. ## Confirm it's working Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR. ### Keyboard By default, Plover will use your keyboard as its input device. 1. Run Plover. 1. Click the Output: **Enable** radio button. ### Write "Hello World" To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. > NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. | Output | Steno Key Stroke | QWERTY Keys | | ---- | ---- | ---- | | hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) | | o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) | | , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) | | world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) | | . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) | If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine) * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO #### Practice sentences You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website. #### Use the correct body posture and finger placement Your fingers should be curled slightly, so you press the keys using the tips of your fingers. ![Steno keys on QWERTY keyboard](https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png) On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place. | QWERTY layout|Maps to steno layout | |:---:|:---:| |`QWER TY UIOP[`|`STPH ** FPLTD`| |`ASDF GH JKL;`|`SKWR ** RBGSZ`| |`CV NM`|`AO EU`| See also: * [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo) * [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU) ### Stenography machine Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: 1. Run Plover and click the **Enable** radio button. 1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears. 1. On the **Machine** tab, select the protocol your machine uses. 1. Click **Save**. See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information. ## Practice and learn It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography). ### Which steno theory should you learn? There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki). **We recommend learning either Plover theory or Lapwing theory.** Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch. </markdown> c1131524fafd074de9a38f7fd42778d452baa789 18 17 2024-02-04T18:34:23Z Rice 1 wikitext text/x-wiki <markdown> This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge. ## Overview The main steps are: 1. [Download and install the Plover application.](#markdown_Download_and_Install_Plover) 1. [Connect a compatible keyboard or stenography (steno) machine.](#connect-a-compatible-keyboard-or-stenography-machine) 1. [Confirm it's working.](#confirm-its-working) 1. [Practice and learn stenography using Plover.](#practice-and-learn) ## Download and Install Plover Plover works on **Windows, Mac, and Linux**. * [**Download and install Plover with the Installation Guide 🚀**](https://github.com/openstenoproject/plover/wiki/Installation-Guide) * If you get stuck, see the [troubleshooting guide](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues). ## Connect a compatible keyboard or stenography machine Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard) * [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard) * [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use) * [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover) * [Use a professional stenography machine](#use-a-professional-stenography-machine) ### Use a standard QWERTY keyboard If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. #### Arpeggiate With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. ![Arpeggiate gif](https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif) To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done. ![arpeggiate option](https://github.com/openstenoproject/plover/assets/52895314/5467e672-7306-43d8-83fb-6f771a5802ef) #### Rolling your strokes By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. ![](https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif) Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working). ### Use an N-key rollover (NKRO) QWERTY keyboard An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [confirm it's working](#confirm-its-working). #### Which NKRO keyboard should I get? Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards). * See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose) ### Adapt a keyboard for steno use Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers) * [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps) You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout). ### Use a machine designed for use with Plover Various steno enthusiasts are making and selling machines designed for use with Plover: * [Ecosteno*](https://nolltronics.com/product/ecosteno/) * [Multisteno*](https://nolltronics.com/product/multisteno/) * [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard) * [Splitography*](https://softhruf.love/products/soft-hruf-erl) * [Starboard*](https://www.stenography.store/) * [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html) * [The Uni*](https://stenokeyboards.com/) (* = External link) More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover). ### Use a professional stenography machine Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. ## Confirm it's working Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR. ### Keyboard By default, Plover will use your keyboard as its input device. 1. Run Plover. 1. Click the Output: **Enable** radio button. ### Write "Hello World" To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. > NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. | Output | Steno Key Stroke | QWERTY Keys | | ---- | ---- | ---- | | hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) | | o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) | | , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) | | world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) | | . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) | If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine) * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO #### Practice sentences You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website. #### Use the correct body posture and finger placement Your fingers should be curled slightly, so you press the keys using the tips of your fingers. ![Steno keys on QWERTY keyboard](https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png) On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place. | QWERTY layout|Maps to steno layout | |:---:|:---:| |`QWER TY UIOP[`|`STPH ** FPLTD`| |`ASDF GH JKL;`|`SKWR ** RBGSZ`| |`CV NM`|`AO EU`| See also: * [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo) * [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU) ### Stenography machine Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: 1. Run Plover and click the **Enable** radio button. 1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears. 1. On the **Machine** tab, select the protocol your machine uses. 1. Click **Save**. See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information. ## Practice and learn It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography). ### Which steno theory should you learn? There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki). **We recommend learning either Plover theory or Lapwing theory.** Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch. </markdown> 56ceb223eb9efaa97162a6efe6cf5974e9aa0e19 19 18 2024-02-04T18:37:03Z Rice 1 wikitext text/x-wiki <markdown> This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge. ## Overview The main steps are: 1. [Download and install the Plover application.](#markdown_Download_and_Install_Plover) 1. [Connect a compatible keyboard or stenography (steno) machine.](#markdown_Connect_a_compatible_keyboard_or_stenography_machine) 1. [Confirm it's working.](#markdown_Confirm_it's_working) 1. [Practice and learn stenography using Plover.](#markdown_Practice_and_learn) ## Download and Install Plover Plover works on **Windows, Mac, and Linux**. * **[Download and install Plover with the Installation Guide 🚀](https://github.com/openstenoproject/plover/wiki/Installation-Guide)** * If you get stuck, see the [troubleshooting guide](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues). ## Connect a compatible keyboard or stenography machine Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard) * [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard) * [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use) * [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover) * [Use a professional stenography machine](#use-a-professional-stenography-machine) ### Use a standard QWERTY keyboard If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. #### Arpeggiate With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. ![Arpeggiate gif](https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif) To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done. ![arpeggiate option](https://github.com/openstenoproject/plover/assets/52895314/5467e672-7306-43d8-83fb-6f771a5802ef) #### Rolling your strokes By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. ![](https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif) Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working). ### Use an N-key rollover (NKRO) QWERTY keyboard An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [confirm it's working](#confirm-its-working). #### Which NKRO keyboard should I get? Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards). * See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose) ### Adapt a keyboard for steno use Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers) * [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps) You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout). ### Use a machine designed for use with Plover Various steno enthusiasts are making and selling machines designed for use with Plover: * [Ecosteno*](https://nolltronics.com/product/ecosteno/) * [Multisteno*](https://nolltronics.com/product/multisteno/) * [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard) * [Splitography*](https://softhruf.love/products/soft-hruf-erl) * [Starboard*](https://www.stenography.store/) * [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html) * [The Uni*](https://stenokeyboards.com/) (* = External link) More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover). ### Use a professional stenography machine Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. ## Confirm it's working Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR. ### Keyboard By default, Plover will use your keyboard as its input device. 1. Run Plover. 1. Click the Output: **Enable** radio button. ### Write "Hello World" To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. > NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. | Output | Steno Key Stroke | QWERTY Keys | | ---- | ---- | ---- | | hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) | | o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) | | , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) | | world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) | | . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) | If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine) * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO #### Practice sentences You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website. #### Use the correct body posture and finger placement Your fingers should be curled slightly, so you press the keys using the tips of your fingers. ![Steno keys on QWERTY keyboard](https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png) On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place. | QWERTY layout|Maps to steno layout | |:---:|:---:| |`QWER TY UIOP[`|`STPH ** FPLTD`| |`ASDF GH JKL;`|`SKWR ** RBGSZ`| |`CV NM`|`AO EU`| See also: * [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo) * [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU) ### Stenography machine Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: 1. Run Plover and click the **Enable** radio button. 1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears. 1. On the **Machine** tab, select the protocol your machine uses. 1. Click **Save**. See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information. ## Practice and learn It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography). ### Which steno theory should you learn? There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki). **We recommend learning either Plover theory or Lapwing theory.** Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch. </markdown> 217f08785b17650aadaa52330e8e0c6ae677941b 20 19 2024-02-04T18:48:35Z Rice 1 wikitext text/x-wiki <markdown> This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge. ## Overview The main steps are: 1. [Download and install the Plover application.](#markdown_Download_and_Install_Plover) 1. [Connect a compatible keyboard or stenography (steno) machine.](#markdown_Connect_a_compatible_keyboard_or_stenography_machine) 1. [Confirm it's working.](#markdown_Confirm_it's_working) 1. [Practice and learn stenography using Plover.](#markdown_Practice_and_learn) ## Download and Install Plover Plover works on **Windows, Mac, and Linux**. * [Download and install Plover with the Installation Guide 🚀](/index.php?title=Installation_Guide) * If you get stuck, see the [troubleshooting guide](/index.php?title=Troubleshooting:_Common_Issues). ## Connect a compatible keyboard or stenography machine Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard) * [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard) * [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use) * [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover) * [Use a professional stenography machine](#use-a-professional-stenography-machine) ### Use a standard QWERTY keyboard If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. #### Arpeggiate With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. ![Arpeggiate gif](https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif) To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done. ![arpeggiate option](https://github.com/openstenoproject/plover/assets/52895314/5467e672-7306-43d8-83fb-6f771a5802ef) #### Rolling your strokes By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. ![](https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif) Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working). ### Use an N-key rollover (NKRO) QWERTY keyboard An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [confirm it's working](#confirm-its-working). #### Which NKRO keyboard should I get? Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards). * See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose) ### Adapt a keyboard for steno use Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers) * [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps) You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout). ### Use a machine designed for use with Plover Various steno enthusiasts are making and selling machines designed for use with Plover: * [Ecosteno*](https://nolltronics.com/product/ecosteno/) * [Multisteno*](https://nolltronics.com/product/multisteno/) * [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard) * [Splitography*](https://softhruf.love/products/soft-hruf-erl) * [Starboard*](https://www.stenography.store/) * [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html) * [The Uni*](https://stenokeyboards.com/) (* = External link) More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover). ### Use a professional stenography machine Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. ## Confirm it's working Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR. ### Keyboard By default, Plover will use your keyboard as its input device. 1. Run Plover. 1. Click the Output: **Enable** radio button. ### Write "Hello World" To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. > NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. | Output | Steno Key Stroke | QWERTY Keys | | ---- | ---- | ---- | | hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) | | o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) | | , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) | | world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) | | . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) | If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine) * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO #### Practice sentences You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website. #### Use the correct body posture and finger placement Your fingers should be curled slightly, so you press the keys using the tips of your fingers. ![Steno keys on QWERTY keyboard](https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png) On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place. | QWERTY layout|Maps to steno layout | |:---:|:---:| |`QWER TY UIOP[`|`STPH ** FPLTD`| |`ASDF GH JKL;`|`SKWR ** RBGSZ`| |`CV NM`|`AO EU`| See also: * [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo) * [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU) ### Stenography machine Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: 1. Run Plover and click the **Enable** radio button. 1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears. 1. On the **Machine** tab, select the protocol your machine uses. 1. Click **Save**. See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information. ## Practice and learn It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography). ### Which steno theory should you learn? There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki). **We recommend learning either Plover theory or Lapwing theory.** Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch. </markdown> c5df2487d211db76929f90b7c3d4cd66cb563665 41 20 2024-02-05T03:41:45Z Rice 1 wikitext text/x-wiki __TOC__ <markdown> This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge. ## Overview The main steps are: 1. [Download and install the Plover application.](#markdown_Download_and_Install_Plover) 1. [Connect a compatible keyboard or stenography (steno) machine.](#markdown_Connect_a_compatible_keyboard_or_stenography_machine) 1. [Confirm it's working.](#markdown_Confirm_it's_working) 1. [Practice and learn stenography using Plover.](#markdown_Practice_and_learn) ## Download and Install Plover Plover works on **Windows, Mac, and Linux**. * [Download and install Plover with the Installation Guide 🚀](/index.php?title=Installation_Guide) * If you get stuck, see the [troubleshooting guide](/index.php?title=Troubleshooting:_Common_Issues). ## Connect a compatible keyboard or stenography machine Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard) * [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard) * [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use) * [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover) * [Use a professional stenography machine](#use-a-professional-stenography-machine) ### Use a standard QWERTY keyboard If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. #### Arpeggiate With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. ![Arpeggiate gif](https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif) To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done. ![arpeggiate option](https://github.com/openstenoproject/plover/assets/52895314/5467e672-7306-43d8-83fb-6f771a5802ef) #### Rolling your strokes By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. ![](https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif) Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working). ### Use an N-key rollover (NKRO) QWERTY keyboard An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [confirm it's working](#confirm-its-working). #### Which NKRO keyboard should I get? Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards). * See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose) ### Adapt a keyboard for steno use Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers) * [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps) You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout). ### Use a machine designed for use with Plover Various steno enthusiasts are making and selling machines designed for use with Plover: * [Ecosteno*](https://nolltronics.com/product/ecosteno/) * [Multisteno*](https://nolltronics.com/product/multisteno/) * [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard) * [Splitography*](https://softhruf.love/products/soft-hruf-erl) * [Starboard*](https://www.stenography.store/) * [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html) * [The Uni*](https://stenokeyboards.com/) (* = External link) More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover). ### Use a professional stenography machine Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. ## Confirm it's working Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR. ### Keyboard By default, Plover will use your keyboard as its input device. 1. Run Plover. 1. Click the Output: **Enable** radio button. ### Write "Hello World" To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. > NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. | Output | Steno Key Stroke | QWERTY Keys | | ---- | ---- | ---- | | hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) | | o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) | | , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) | | world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) | | . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) | If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine) * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO #### Practice sentences You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website. #### Use the correct body posture and finger placement Your fingers should be curled slightly, so you press the keys using the tips of your fingers. ![Steno keys on QWERTY keyboard](https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png) On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place. | QWERTY layout|Maps to steno layout | |:---:|:---:| |`QWER TY UIOP[`|`STPH ** FPLTD`| |`ASDF GH JKL;`|`SKWR ** RBGSZ`| |`CV NM`|`AO EU`| See also: * [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo) * [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU) ### Stenography machine Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: 1. Run Plover and click the **Enable** radio button. 1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears. 1. On the **Machine** tab, select the protocol your machine uses. 1. Click **Save**. See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information. ## Practice and learn It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography). ### Which steno theory should you learn? There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki). **We recommend learning either Plover theory or Lapwing theory.** Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch. </markdown> 6e9a4713febdf23293a684762e265f516ff9f48b MediaWiki:Sidebar 8 5 21 2024-02-04T19:26:06Z Rice 1 Created page with " * navigation ** mainpage|mainpage-description ** https://www.openstenoproject.org/plover|Plover Website * Other Links ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES" wikitext text/x-wiki * navigation ** mainpage|mainpage-description ** https://www.openstenoproject.org/plover|Plover Website * Other Links ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 8df1aab0467d628698c0470ba55605d27a0781ba 22 21 2024-02-04T19:28:59Z Rice 1 wikitext text/x-wiki * navigation ** mainpage|mainpage-description *** https://www.openstenoproject.org/plover|Plover Website *** Beginner's_Guide * Other Links ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 4e8ec6b3d80c2819857e53d95c3184a437c4cf37 23 22 2024-02-04T19:29:30Z Rice 1 wikitext text/x-wiki * navigation ** mainpage|mainpage-description *** https://www.openstenoproject.org/plover|Plover Website *** Beginner's_Guide|Beginner's Guide * Other Links ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES bec6300995bb0fc0ad9e0d1451eb28520c6bf70f 24 23 2024-02-04T19:31:55Z Rice 1 wikitext text/x-wiki * navigation ** Plover|mainpage-description ** https://www.openstenoproject.org/plover|Plover Website ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation_Guide * Other Links ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 2ac6b68188c5bfea58508e0c2a619efef472722c 25 24 2024-02-04T19:33:06Z Rice 1 wikitext text/x-wiki * navigation ** Plover ** https://www.openstenoproject.org/plover|Plover Website ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide * Other Links ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 6cc8b57c88a86d0b71478a6a22325b53816cfb86 26 25 2024-02-04T19:33:18Z Rice 1 wikitext text/x-wiki * navigation ** Plover|Plover ** https://www.openstenoproject.org/plover|Plover Website ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide * Other Links ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 52d0f70f201e473ee4ebe129a7bbe6d26bd69b57 27 26 2024-02-04T19:34:23Z Rice 1 wikitext text/x-wiki * navigation ** mainpage|mainpage_description ** https://www.openstenoproject.org/plover|Plover Website ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide * Other Links ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 31c3a50c631f29bae9818e2031778cfe1be87d0b 28 27 2024-02-04T19:35:00Z Rice 1 wikitext text/x-wiki * navigation ** mainpage|mainpagedescription ** https://www.openstenoproject.org/plover|Plover Website ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide * Other Links ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 5b1b450aa1372b8ca91ff2348dd853d240741e69 29 28 2024-02-04T19:35:23Z Rice 1 wikitext text/x-wiki * navigation ** mainpage|Main Page ** https://www.openstenoproject.org/plover|Plover Website ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide * Other Links ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES b1faa9c4b8028f941bdd952f632bec674741d44f 30 29 2024-02-04T19:47:11Z Rice 1 wikitext text/x-wiki * Plover ** mainpage|Main Page ** https://www.openstenoproject.org/plover|Plover Website ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide ** Supported_Hardware|Supported Hardware ** Dictionary_Format|Dictionary Format ** Built-in_Tools|Built-in_Tools ** Open_Steno_Project_Timeline|Open Steno Project Timeline ** Troubleshooting_Issues|Troubleshooting Issues * Stenography ** FAQ|FAQ ** Glossary|Glossary ** Learning_Stenography|Learning Stenography ** Brief_Ideas|Brief Ideas ** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages ** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries * The_Steno_Community|The Steno Community * https://www.openstenoproject.org/demo/|In-Browser Demo * MediaWiki ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 6ed9840efcf3160eebcf6719e9c0e6d8d6dfe1bc 31 30 2024-02-04T19:48:11Z Rice 1 wikitext text/x-wiki * Plover ** mainpage|Main Page ** https://www.openstenoproject.org/plover|Plover Website ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide ** Supported_Hardware|Supported Hardware ** Dictionary_Format|Dictionary Format ** Built-in_Tools|Built-in_Tools ** Open_Steno_Project_Timeline|Open Steno Project Timeline ** Troubleshooting_Issues|Troubleshooting Issues * Stenography ** FAQ|FAQ ** Glossary|Glossary ** Learning_Stenography|Learning Stenography ** Brief_Ideas|Brief Ideas ** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages ** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries * Other Pages ** The_Steno_Community|The Steno Community ** https://www.openstenoproject.org/demo/|In-Browser Demo * MediaWiki ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES fa0876f68125ee682909aafa7fbb66b9f486526e 32 31 2024-02-04T19:48:34Z Rice 1 wikitext text/x-wiki * Plover ** mainpage|Main Page ** https://www.openstenoproject.org/plover|Plover Website ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide ** Supported_Hardware|Supported Hardware ** Dictionary_Format|Dictionary Format ** Built-in_Tools|Built-in_Tools ** Open_Steno_Project_Timeline|Open Steno Project Timeline ** Troubleshooting_Issues|Troubleshooting Issues * Stenography ** FAQ|FAQ ** Glossary|Glossary ** Learning_Stenography|Learning Stenography ** Brief_Ideas|Brief Ideas ** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages ** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries * Other Pages ** The_Steno_Community|The Steno Community ** https://www.openstenoproject.org/demo/|In-Browser Demo * MediaWiki ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 8ab9eee3261d71c5d52ce2c491f3edb61834e0dd 33 32 2024-02-04T19:49:42Z Rice 1 wikitext text/x-wiki * Plover ** mainpage|Main Page ** https://www.openstenoproject.org/plover|Plover Website (External) ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide ** Supported_Hardware|Supported Hardware ** Dictionary_Format|Dictionary Format ** Built-in_Tools|Built-in_Tools ** Open_Steno_Project_Timeline|Open Steno Project Timeline ** Troubleshooting_Issues|Troubleshooting Issues * Stenography ** FAQ|FAQ ** Glossary|Glossary ** Learning_Stenography|Learning Stenography ** Brief_Ideas|Brief Ideas ** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages ** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries * Other Pages ** The_Steno_Community|The Steno Community ** https://www.openstenoproject.org/demo/|In-Browser Demo * MediaWiki ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES fa359347300c709ea3298412c38cf444f321d481 34 33 2024-02-04T19:50:04Z Rice 1 wikitext text/x-wiki * Plover ** mainpage|Main Page ** https://www.openstenoproject.org/plover|Plover Website (External) ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide ** Supported_Hardware|Supported Hardware ** Dictionary_Format|Dictionary Format ** Built-in_Tools|Built-in Tools ** Open_Steno_Project_Timeline|Open Steno Project Timeline ** Troubleshooting_Issues|Troubleshooting Issues * Stenography ** FAQ|FAQ ** Glossary|Glossary ** Learning_Stenography|Learning Stenography ** Brief_Ideas|Brief Ideas ** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages ** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries * Other Pages ** The_Steno_Community|The Steno Community ** https://www.openstenoproject.org/demo/|In-Browser Demo * MediaWiki ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 7cd4f9f7e4e21ed3f7d2425736fb2f9ce5a42b4d MediaWiki:Common.css 8 6 35 2024-02-04T20:16:55Z Rice 1 Created page with "/* CSS placed here will be applied to all skins */ #mw-wiki-logo{ padding:1rem; }" css text/css /* CSS placed here will be applied to all skins */ #mw-wiki-logo{ padding:1rem; } b5554dd768f8d2c6a3118885ed766368a3f70f25 36 35 2024-02-04T20:17:24Z Rice 1 css text/css /* CSS placed here will be applied to all skins */ #p-logo{ padding:1rem; } 1e89ab32f18481799c597bf67ed90ebc4d07008f 37 36 2024-02-04T20:19:25Z Rice 1 css text/css /* CSS placed here will be applied to all skins */ #p-logo{ padding:1rem; } #p-logo a{ width: 100%; } 484aa1be97a3e3fb08d5bb15520425128699d247 38 37 2024-02-04T20:20:29Z Rice 1 css text/css /* CSS placed here will be applied to all skins */ #p-logo{ padding:1rem; box-sizing:border-box; } #p-logo a{ width: 100%; } a3869c10b2d62a7fb5b894277f7405c3945c1150 39 38 2024-02-04T20:22:42Z Rice 1 css text/css /* CSS placed here will be applied to all skins */ f23a4358c198efde0025fa6fb8082854aa392a65 File:Plover-mascot-Dolores.svg 6 7 46 2024-02-05T15:42:00Z Rice 1 wikitext text/x-wiki An illustration of a plover (the bird) with a steno keyboard layout on the underside of its wing e78c9bc927a16283d035fe1ae3d990ae25862cb1 Installation Guide 0 8 52 2024-02-05T15:47:39Z Rice 1 Created page with "<markdown> **Table of Contents** - [Install Plover on Windows](#install-plover-on-windows) - [Install Plover on Mac](#install-plover-on-mac) - [Install Plover on Linux](#install-plover-on-linux) - [Troubleshooting](#troubleshooting) - [Setting up my machine](#setting-up-my-machine) - [Other installation methods](#other-installation-methods) - [For developers: running from source](#for-developers-running-from-source) # Install Plover on Windows Plover can be installed..." wikitext text/x-wiki <markdown> **Table of Contents** - [Install Plover on Windows](#install-plover-on-windows) - [Install Plover on Mac](#install-plover-on-mac) - [Install Plover on Linux](#install-plover-on-linux) - [Troubleshooting](#troubleshooting) - [Setting up my machine](#setting-up-my-machine) - [Other installation methods](#other-installation-methods) - [For developers: running from source](#for-developers-running-from-source) # Install Plover on Windows Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. ## [Download the Windows installer here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe) Run the installer and follow the onscreen instructions. You may need to [grant permissions for the app to bypass Windows Defender SmartScreen.](https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10) ### [Download the Windows portable ZIP here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip) Extract the entire folder to the location that you'd like to run Plover from. Inside the folder, run `plover.exe` to start Plover. -------------------- # Install Plover on Mac ## [Download Plover for Mac here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg) 1. Open the `.dmg` file. 1. In the mounted disk, drag the `Plover.app` to your `Applications` folder. 1. Open the Applications folder, and [follow the guide to launch a program from an unidentified developer.](https://support.apple.com/en-ca/guide/mac-help/mh40616/mac) 1. Open `System Preferences > Security & Privacy > Privacy > Accessibility`. 1. Click the `+` Button, and go to your applications and select `Plover.app`. Plover is set up! You can run Plover like you would any other application. > **Note**: Other "keyboard helper"-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. ### If you had previously uninstalled Plover or upgraded your system Repeat step 4, and remove Plover from the list. **Do not just uncheck Plover; you will have to explicitly remove Plover by using the `-` button**. Once Plover has been removed, readd `Plover.app` by repeating step 5. -------------------- # Install Plover on Linux Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. Please note that **Plover is not officially supported on systems running Wayland at this moment**. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [this one](https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS) to determine if you're running Wayland and how to switch. ## [Download the Plover AppImage here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage) To use it: 1. Download it 1. [Make it executable](http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80) 1. Launch it like a standard executable ## Allow Access to Serial Ports All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: ``` stat -c "%G" /dev/ttyACM* ``` You should see `dialout` or `uucp` depending on your distro. If the above command results in a "file not found" error, try replacing `ACM` with `USB` and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: ``` sudo usermod -aG <group> $USER ``` Replace `<group>` with the output of the previous command. **Once you have added yourself to the right group, restart your computer.** ## Error relating to xcb You may run into the following error when trying to run Plover: > Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem. Ensure that the following packages are installed: - `libxcb` - `xcb-util` - `qt5-qtstyleplugins` - `libxcb-cursor0` Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: ``` ./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2' ``` # Setting up my machine Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. Please check the [Supported Hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware) to find instructions specific to your machine. # Other installation methods ## Other releases You can browse various other releases of Plover by scrolling through the [releases page](https://github.com/openstenoproject/plover/releases). To download a release, click on "Assets" and download the applicable file for your operating system. ![Downloading releases](https://github.com/openstenoproject/plover/assets/52895314/7e886397-e35d-41f9-b23b-2e7d22a658e9) ## Homebrew Cask If you have [**Homebrew Cask**](https://caskroom.github.io/) installed on your system, you can run `brew install --cask plover` at the command-line. ## Arch AUR package Two AUR packages are provided: 1. [plover](https://aur.archlinux.org/packages/plover/) for the latest stable release 2. and [plover-git](https://aur.archlinux.org/packages/plover-git/) for the current `master` Note: the plugins manager is not part of `plover-git`, and is available as a [separate package](https://aur.archlinux.org/packages/plover_plugins_manager/). ## Gentoo git ebuild Currently, only a git ebuild for the `master` branch is provided. [Personal overlay.](https://framagit.org/3/ebuilds) (out of date dependencies) ## Void Linux package Plover is packaged in the Void Linux repositories under the package name `plover`. Note: the plugins manager has not been packaged yet. # Troubleshooting If you get stuck, you can: - Check the [troubleshooting guide.](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues) - Search for your problem in our [issue tracker](https://github.com/openstenoproject/plover/issues) and our [Discussions forum.](https://github.com/openstenoproject/plover/discussions) - If you can't find your particular problem, [open a support request](https://github.com/openstenoproject/plover/issues/new/choose) or [start a Discussion.](https://github.com/openstenoproject/plover/discussions/new) We also have a [Plover Discord Server](https://discord.gg/0lQde43a6dGmAMp2), the [steno community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), and a [GitHub Discussions forum](https://github.com/openstenoproject/plover/discussions) if you have a general idea or discussion topic. # For developers: running from source If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: - [`plover/windows`](https://github.com/openstenoproject/plover/tree/master/windows) - [`plover/linux`](https://github.com/openstenoproject/plover/tree/master/linux) - [`plover/osx`](https://github.com/openstenoproject/plover/tree/master/osx) </markdown> 116642f91d2a360a9931d1cb1be298a3f5a0036d MediaWiki:Spam-whitelist 8 9 53 2024-02-05T15:57:39Z Rice 1 Created page with " #<!-- leave this line exactly as it is --> <pre> # External URLs matching this list will *not* be blocked even if they would # have been blocked by block list entries. # # Syntax is as follows: # * Everything from a "#" character to the end of the line is a comment # * Every non-blank line is a regex fragment which will only match hosts inside URLs #</pre> <!-- leave this line exactly as it is --> youtu.be amzn.to aliexpress.com" wikitext text/x-wiki #<!-- leave this line exactly as it is --> <pre> # External URLs matching this list will *not* be blocked even if they would # have been blocked by block list entries. # # Syntax is as follows: # * Everything from a "#" character to the end of the line is a comment # * Every non-blank line is a regex fragment which will only match hosts inside URLs #</pre> <!-- leave this line exactly as it is --> youtu.be amzn.to aliexpress.com 34bd7d947b853171223c22d1dabc4f2193f88cd5 Supported hardware 0 10 54 2024-02-05T15:58:03Z Rice 1 Created page with "<markdown> This page lists the machine known to work with Plover. **Table of Contents** - [Dedicated machines designed for use with Plover](#dedicated-machines-designed-for-use-with-plover) - [Commercially Available Hobbyist Machines](#commercially-available-hobbyist-machines) - [DIY Machines](#diy-machines) - [Out-of-production Machines](#out-of-production-machines) - [Stenotype Machines](#stenotype-machines) - [Supported protocols](#supported-protocols) - [..." wikitext text/x-wiki <markdown> This page lists the machine known to work with Plover. **Table of Contents** - [Dedicated machines designed for use with Plover](#dedicated-machines-designed-for-use-with-plover) - [Commercially Available Hobbyist Machines](#commercially-available-hobbyist-machines) - [DIY Machines](#diy-machines) - [Out-of-production Machines](#out-of-production-machines) - [Stenotype Machines](#stenotype-machines) - [Supported protocols](#supported-protocols) - [Known supported stenotypes](#known-supported-stenotypes) - [Keyboards](#keyboards) - [What's NKRO?](#whats-nkro) - [How do I know if my keyboard has NKRO](#how-do-i-know-if-my-keyboard-has-nkro) - [Test #1: Double Shift](#test-1-double-shift) - [Test #2: Keyboard Ghosting Test](#test-2-keyboard-ghosting-test) - [What if my keyboard is not capable of NKRO?](#what-if-my-keyboard-is-not-capable-of-nkro) - [Known supported keyboards](#known-supported-keyboards) - [Which type of key switch should I choose?](#which-type-of-key-switch-should-i-choose) - [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use) - [Keytoppers](#keytoppers) - [Keycaps](#keycaps) - [NKRO keyboards with an ortholinear layout](#nkro-keyboards-with-an-ortholinear-layout) - [Laptops with NKRO](#laptops-with-nkro) - [Laptops that don't actually work with Plover](#laptops-that-dont-actually-work-with-plover) <!-- END doctoc generated TOC please keep comment here to allow auto update --> # Dedicated machines designed for use with Plover Various steno enthusiasts are making and selling machines designed for use with Plover. ## Commercially Available Hobbyist Machines Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> | Product Name | Manufacturer | About | Price | | - | - | ---- | - | | [Ecosteno](https://nolltronics.com/product/ecosteno/) | [Nolltronics](https://nolltronics.com/) | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>**Stock status** (as of January 2024): In stock | $95 | | [Multisteno](https://nolltronics.com/product/multisteno/) | [Nolltronics](https://nolltronics.com/) | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>**Stock status** (as of January 2024): In stock | $170 | | [Polyglot](https://stenokeyboards.com/products/polyglot-keyboard) | [StenoKeyboards](https://www.stenokeyboards.com) | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>**Stock status** (as of January 2024): In stock| $125 | | [SOFT/HRUF Splitography](https://softhruf.love) | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, "soft love". The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch's internal leaflet, it is possible to reduce the force required to actuate.<br><br>**Stock status** (as of January 2024): Out of stock. [(source)](https://softhruf.love/products/soft-hruf-erl) | $138 | | [Starboard](https://www.stenography.store/) | [Stenography Store](https://www.stenography.store/) | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>**Stock status** (as of January 2024): In stock | $90 (+ $10 shipping) | | [TinyMod](https://stenomod.blogspot.com) | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [Mirabai's review](http://plover.stenoknight.com/2019/12/tinymod-review.html).<br><br>**Stock status** (as of January 2024): In stock | $140 (stock)<br>$180 (silent) | | [The Uni](https://www.stenokeyboards.com/products/the-uni-v4) | [StenoKeyboards](https://www.stenokeyboards.com) | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>**Stock status** (as of January 2024): In stock | $100 | ## DIY Machines Projects to build your own machine. | Product Name | About | | ---------------------------------- | ----------------------- | | [MechWild BB Steno](https://mechwild.com/product/bb-steno/) | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. | [Picosteno](https://nolltronics.com/product/picosteno/) | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! | [Stenokey](https://github.com/mike-ady/Stenokey) | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. | | [The Uni v2 PCB](https://stenokeyboards.com/products/uni-v2-pcb) | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. | | [Yet Another Steno Keyboard](https://github.com/ttempe/YASK)| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [build instructions](https://youtu.be/82yD0RMeEw8)| ## Out-of-production Machines Models that are no longer made or available for sale. | Product Name | Manufacturer | About | Years | | ---------------------------------- | ------------------ | ----------------------- | ----- | | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard's keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 | | [SOFT/HRUF](https://softhruf.love) | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography | | [Stenomod](https://stenomod.blogspot.com) | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [Ted Morin's review of the Stenomod](https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine) as well as [Martin Körner's review](https://stenoblog.com/the-stenomod/). The name is supposed to hint at how the machine is "modular" and adaptable. | 2017-2018, superseded by the TinyMod | | [Georgi](https://www.gboards.ca/product/georgi) | [g Heavy Industries](https://www.gboards.ca) | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [Martin's Georgi Stand with Trackball review](https://stenoblog.com/georgi-stand-with-trackball/), [Mirabai's review](http://plover.stenoknight.com/2019/12/georgi-review.html), [Aerick's Georgi Mount](https://aerick.ca/steno/georgi-stand/), and [Josh's photos](https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04). | 2019-2021 | | [Steko](https://quanicboards.com/products/steko) | [Quanic Boards](https://quanicboards.com) | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 | # Stenotype Machines <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/> ## Supported protocols Plover supports several protocols that are in use by various machines: * **Stentura serial**: most machines by Stenograph and many others. * **Gemini PR serial**: typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * **ProCAT**: protocol used by all ProCAT machines. * **TX Bolt**: an older protocol supported by some machines as a primary or secondary protocol. * **Treal**: used only by the Treal from Word Technologies. * **Passport**: used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover. ## Known supported stenotypes The following machines have been confirmed by users to work with Plover after actually trying it: | Product Name | Manufacturer | Protocol/Connection | Comments | | ---------------------------------- | ------------------ | ------------------- | ----------------------- | | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | | | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, *maybe*) | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. | | Flash Writer | ProCAT | TX Bolt | Press `Mode` (far right button), click `Setup`, then press the `Emul` button. Display should read `Emulate: Baron` | | Gemini2 | Neutrino Group | Gemini PR (serial) | | | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [Infinity2](https://www.infinitytraditional.com/infinity-2/) | | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 | | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided "Lightspeed Zenith" software, not the "Lightspeed" software from the Stenovations website. Protocol can be changed depending on the "Writer Mode" setting in options. Choose "Model II and Model III" at startup. | | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 | | Infinity Genesis | Neutrino Group | Gemini PR (serial) | | | Passport | Advantage Software | Passport (USB) | | | Passport Touch | Advantage Software | USB, Bluetooth | While in "Emulation Mode": Stentura over Bluetooth or TX Bolt over USB  | | Revolution Grand | Neutrino Group | Gemini PR (serial) | | | Stentura 400 SRT | Stenograph | Stentura (serial) | [Setup Instructions](https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT) | | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) | | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) | | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) | | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the `plover-stenograph` plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [Setup Instructions for Serial](https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions)| | Tréal | Word technologies | Treal (USB) | | | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the `plover-stenograph` plugin. Make sure "serial protocol" on the Wave is set to "Stentura". | | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the `plover-stenograph` plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. | # Keyboards If you don't have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). ## What's NKRO? This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [Wikipedia entry about NKRO](https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover). ## How do I know if my keyboard has NKRO In general, most keyboards will not be NKRO. "Gaming" and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit [https://keyboardchecker.com/](https://keyboardchecker.com/) and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website. ## What if my keyboard is not capable of NKRO? If you don't have a keyboard that's capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard) for more information. ## Known supported keyboards You can search for NKRO keyboards compatible with Plover by including "NKRO" or "anti-ghosting" in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: | Product Name | Manufacturer | Comments | Price | --------------------------- | ---------------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [27 GBP](https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/) | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [similar model](http://www.dareu.com/?m=home&c=View&a=index&aid=169), they may have the glitch mentioned above or not. | < $30 | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [$30](https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/) | K552 | Redragon | NKRO over USB | [$35](https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U) | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [$40](https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html) | ZM-K600S | Zalman | NKRO over USB | [$40](https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE) | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [$50](https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/) | K66 | Corsair | NKRO over USB | [$55](https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/) | K63 | Corsair | NKRO over USB (Works on Mac!) | [$80](https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT) | K68 | Corsair | NKRO over USB | $160-200 | K95 | Corsair | NKRO over USB | [~$200](https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM) | KG901 | Marvo | NKRO over USB | $30-70 AUD | STRAFE | Corsair | NKRO over USB | [$80](https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/) | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn't work on Mac) | [$85](https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/) | Vengeance K65 | Corsair | NKRO over USB | [$90](http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html) | C413 Carbon | Logitech | 26KRO | [$90](https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html) | Francium Pro | Deck | NKRO over USB when in "lightning" mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you'd be stuck with 6KRO). | [$94](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690) | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [$95](https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1) | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in "gaming" mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [$100](https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1) | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [$120](https://www.amazon.com/dp/B076XDTLBB) | G710+ | Logitech | NKRO over USB | [$130](https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard) | Majestouch-2 | Filco | NKRO over USB | [$167](https://amzn.to/oLy2xQ) | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [$169](https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/) | Apex M800 | SteelSeries | NKRO over USB | [$199](https://steelseries.com/gaming-keyboards/apex-m800) | Ergo Pro | Matias | NKRO over USB | [$200](https://matias.ca/ergopro/pc/) | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [$250](https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard) | Ergodox | Ergodox | NKRO over USB | [Parts €160.00 - Assembled €247.00](https://falba.tech/customize-your-keyboard/customize-your-ergodox/) | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc.| NKRO over USB | [EZ Only $270 - All Upgrades $354+](https://ergodox-ez.com) | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [ Planck only $180 - W/LED Backlighting $195 ](https://ergodox-ez.com/pages/planck) | Model01 | Keyboard.io | NKRO over USB | [$329](https://shop.keyboard.io) | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [$139](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917) ### Which type of key switch should I choose? Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a **light actuation force** on a **linear** switch. The light actuation makes it easier on your hands. For a chord like `TKPWHRAOEUGD` (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that's 640cN (~640g, ~22.6 oz). **For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.** | How many keys are in the average chord? | | | --- | --- | | 1:&nbsp;23<br />2:&nbsp;221<br />3:&nbsp;1115<br />4:&nbsp;3247<br />5:&nbsp;6168<br />6:&nbsp;7820<br />7:&nbsp;7293<br />8:&nbsp;5069<br />9:&nbsp;2707<br />10:&nbsp;1126<br />11:&nbsp;331<br />12:&nbsp;90<br />13:&nbsp;21<br />14:&nbsp;3<br />15:&nbsp;1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> | The linearity is recommended because it's been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn't process all the fingers' feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between **10cN and 20cN**, with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between **2mm and 30mm**. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that "speed switches" with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. | Switch | Stat | Note | Machines | | ------ | ---- | ---- | ------- | | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch | | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch | | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a "flat" force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch | | Cherry MX Red | 45 cN linear | | | | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | | | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | | |Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch | \* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: - Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro - Putting the Gateron Clear's 35 cN spring into the Kailh Silver for its earlier actuation point. - Trimming the springs of a linear switch by several mm to reduce force. - Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn't yet released to the wider market. - Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat. ## Adapt a keyboard for steno use ![](https://c1.staticflickr.com/5/4202/34180678224_98d3e26f1f_n.jpg) Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout. ### Keytoppers Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [Plover Store](http://plover.deco-craft.com/). You can also make your own keytoppers out of plastic or even coins. ![Laser-cut keytoppers sitting in a pile](https://i.imgur.com/cjWDy2J.jpg) ### Keycaps If you have a mechanical keyboard, it is likely your keys have a [Cherry MX stem](https://deskthority.net/wiki/Cherry_MX) and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. - [StenoToppers](https://cemrajc.github.io/stenotoppers/) is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service. <img src="https://imgur.com/FRwXu8x.jpg" width="400"> - The [G20 keycap set](https://pimpmykeyboard.com/g20-blank-keycap-sets/) from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (`STPH...`) down, so that they are close to the bottom row (`SKWR...`) - You can 3D-print a [steno-friendly keycap](https://github.com/morinted/stenomod_case). Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary). ## NKRO keyboards with an ortholinear layout Keyboards with an "ortholinear" layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: | Product Name | Manufacturer | Protocol/Connection | Comments | | ---------------------------------- | ------------------ | ------------------- | ----------------------- | | [ErgoDox](https://deskthority.net/wiki/ErgoDox) | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [guide to Starting Stenography with an Ergodox by Paul Fioravanti](https://www.paulfioravanti.com/blog/starting-stenography-ergodox/). | | [Planck](https://olkb.com/planck/) | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [guide to starting stenography with a Planck by DiDoesDigital](https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/). <br /> ![Planck steno keyboard](https://i.imgur.com/e9B2qpO.jpg)| |[Preonic](https://olkb.com/preonic/)| OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. | | [Gherkin](http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html) | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. | [Iris](https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard) | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don't feel as good as the Alienware's classic keyboard style. It's always best to try laptop keyboards at a local store, if possible. | Model | Screen Size | Manufacturer | Rollover | Price (USD) | Weight | | -------- | ----------- | --------------- | ------- | ----- | ------ | | [Alienware R3/R4](https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops) | 13", 15", 17" | Dell | n-key | **$1000** to $3000 | 5.8 to 9.8 lbs | | [GL553](https://www.asus.com/ca-en/Laptops/ROG-GL553VD/) | 15" | Asus | 30-key | $1200 | 5.5 lbs | | [Razer Blade Stealth 8th Gen](https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth) | 13" | Razer | 14-key | $1200+ | **2.98 lbs** | | [Zephyrus GM501](https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/) | 15" | Asus | 30-key | $1500 to $2200 | 5.5lbs | | [Omen X](https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html) | 17" | HP | n-key* | $1800 | 10.7 lbs | | [P57X](https://www.gigabyte.com/Laptop/P57X-v7) | 17" | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs | | [GL502](https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/) | 15" | Asus | 30-key | $1900 | 4.9 lbs | | [Aero 15/15x](https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H) | 15" | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs | | [Legion Y920](https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877) | 17" | Lenovo | 100-key* | $2200 | 10.1 lbs | | [Zephyrus GX501](https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/) | 15" | Asus | 30-key | $2500 | 4.85lbs | | Aorus [X5 v8](https://www.aorus.com/product-detail.php?p=744) and [X7 v8](https://www.aorus.com/product-detail.php?p=745) | 15", 17" | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs | | [Predator Triton 700](https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q) | 15" | Acer | n-key (clicky keys) | $3000 | 5.3 lbs | \* Untested for use with Plover ## Laptops that don't actually work with Plover After testing some of the laptops on the list above, they were found to not live up to their claims. | Model | Manufacturer | Claimed Rollover | Findings | | -------- | --------------- | ------- | ----- | | HP Omen [15](https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr) and [17](https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr) | HP | "26-key rollover anti-ghosting" | Combination "YUHJ" on Qwerty only produces 3 letters | | [GF62](https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html) and [GP72](https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M) | MSI | "anti-ghosting for up to 45 keys" | 99% of chords were OK, certain combinations wouldn't work -- e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. | </markdown> d11214dfa8eff45a1767fd0990fee372a304c4dd 55 54 2024-02-05T15:58:28Z Rice 1 wikitext text/x-wiki <markdown> This page lists the machine known to work with Plover. **Table of Contents** - [Dedicated machines designed for use with Plover](#dedicated-machines-designed-for-use-with-plover) - [Commercially Available Hobbyist Machines](#commercially-available-hobbyist-machines) - [DIY Machines](#diy-machines) - [Out-of-production Machines](#out-of-production-machines) - [Stenotype Machines](#stenotype-machines) - [Supported protocols](#supported-protocols) - [Known supported stenotypes](#known-supported-stenotypes) - [Keyboards](#keyboards) - [What's NKRO?](#whats-nkro) - [How do I know if my keyboard has NKRO](#how-do-i-know-if-my-keyboard-has-nkro) - [Test #1: Double Shift](#test-1-double-shift) - [Test #2: Keyboard Ghosting Test](#test-2-keyboard-ghosting-test) - [What if my keyboard is not capable of NKRO?](#what-if-my-keyboard-is-not-capable-of-nkro) - [Known supported keyboards](#known-supported-keyboards) - [Which type of key switch should I choose?](#which-type-of-key-switch-should-i-choose) - [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use) - [Keytoppers](#keytoppers) - [Keycaps](#keycaps) - [NKRO keyboards with an ortholinear layout](#nkro-keyboards-with-an-ortholinear-layout) - [Laptops with NKRO](#laptops-with-nkro) - [Laptops that don't actually work with Plover](#laptops-that-dont-actually-work-with-plover) # Dedicated machines designed for use with Plover Various steno enthusiasts are making and selling machines designed for use with Plover. ## Commercially Available Hobbyist Machines Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> | Product Name | Manufacturer | About | Price | | - | - | ---- | - | | [Ecosteno](https://nolltronics.com/product/ecosteno/) | [Nolltronics](https://nolltronics.com/) | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>**Stock status** (as of January 2024): In stock | $95 | | [Multisteno](https://nolltronics.com/product/multisteno/) | [Nolltronics](https://nolltronics.com/) | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>**Stock status** (as of January 2024): In stock | $170 | | [Polyglot](https://stenokeyboards.com/products/polyglot-keyboard) | [StenoKeyboards](https://www.stenokeyboards.com) | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>**Stock status** (as of January 2024): In stock| $125 | | [SOFT/HRUF Splitography](https://softhruf.love) | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, "soft love". The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch's internal leaflet, it is possible to reduce the force required to actuate.<br><br>**Stock status** (as of January 2024): Out of stock. [(source)](https://softhruf.love/products/soft-hruf-erl) | $138 | | [Starboard](https://www.stenography.store/) | [Stenography Store](https://www.stenography.store/) | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>**Stock status** (as of January 2024): In stock | $90 (+ $10 shipping) | | [TinyMod](https://stenomod.blogspot.com) | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [Mirabai's review](http://plover.stenoknight.com/2019/12/tinymod-review.html).<br><br>**Stock status** (as of January 2024): In stock | $140 (stock)<br>$180 (silent) | | [The Uni](https://www.stenokeyboards.com/products/the-uni-v4) | [StenoKeyboards](https://www.stenokeyboards.com) | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>**Stock status** (as of January 2024): In stock | $100 | ## DIY Machines Projects to build your own machine. | Product Name | About | | ---------------------------------- | ----------------------- | | [MechWild BB Steno](https://mechwild.com/product/bb-steno/) | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. | [Picosteno](https://nolltronics.com/product/picosteno/) | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! | [Stenokey](https://github.com/mike-ady/Stenokey) | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. | | [The Uni v2 PCB](https://stenokeyboards.com/products/uni-v2-pcb) | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. | | [Yet Another Steno Keyboard](https://github.com/ttempe/YASK)| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [build instructions](https://youtu.be/82yD0RMeEw8)| ## Out-of-production Machines Models that are no longer made or available for sale. | Product Name | Manufacturer | About | Years | | ---------------------------------- | ------------------ | ----------------------- | ----- | | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard's keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 | | [SOFT/HRUF](https://softhruf.love) | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography | | [Stenomod](https://stenomod.blogspot.com) | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [Ted Morin's review of the Stenomod](https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine) as well as [Martin Körner's review](https://stenoblog.com/the-stenomod/). The name is supposed to hint at how the machine is "modular" and adaptable. | 2017-2018, superseded by the TinyMod | | [Georgi](https://www.gboards.ca/product/georgi) | [g Heavy Industries](https://www.gboards.ca) | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [Martin's Georgi Stand with Trackball review](https://stenoblog.com/georgi-stand-with-trackball/), [Mirabai's review](http://plover.stenoknight.com/2019/12/georgi-review.html), [Aerick's Georgi Mount](https://aerick.ca/steno/georgi-stand/), and [Josh's photos](https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04). | 2019-2021 | | [Steko](https://quanicboards.com/products/steko) | [Quanic Boards](https://quanicboards.com) | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 | # Stenotype Machines <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/> ## Supported protocols Plover supports several protocols that are in use by various machines: * **Stentura serial**: most machines by Stenograph and many others. * **Gemini PR serial**: typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * **ProCAT**: protocol used by all ProCAT machines. * **TX Bolt**: an older protocol supported by some machines as a primary or secondary protocol. * **Treal**: used only by the Treal from Word Technologies. * **Passport**: used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover. ## Known supported stenotypes The following machines have been confirmed by users to work with Plover after actually trying it: | Product Name | Manufacturer | Protocol/Connection | Comments | | ---------------------------------- | ------------------ | ------------------- | ----------------------- | | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | | | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, *maybe*) | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. | | Flash Writer | ProCAT | TX Bolt | Press `Mode` (far right button), click `Setup`, then press the `Emul` button. Display should read `Emulate: Baron` | | Gemini2 | Neutrino Group | Gemini PR (serial) | | | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [Infinity2](https://www.infinitytraditional.com/infinity-2/) | | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 | | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided "Lightspeed Zenith" software, not the "Lightspeed" software from the Stenovations website. Protocol can be changed depending on the "Writer Mode" setting in options. Choose "Model II and Model III" at startup. | | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 | | Infinity Genesis | Neutrino Group | Gemini PR (serial) | | | Passport | Advantage Software | Passport (USB) | | | Passport Touch | Advantage Software | USB, Bluetooth | While in "Emulation Mode": Stentura over Bluetooth or TX Bolt over USB  | | Revolution Grand | Neutrino Group | Gemini PR (serial) | | | Stentura 400 SRT | Stenograph | Stentura (serial) | [Setup Instructions](https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT) | | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) | | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) | | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) | | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the `plover-stenograph` plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [Setup Instructions for Serial](https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions)| | Tréal | Word technologies | Treal (USB) | | | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the `plover-stenograph` plugin. Make sure "serial protocol" on the Wave is set to "Stentura". | | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the `plover-stenograph` plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. | # Keyboards If you don't have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). ## What's NKRO? This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [Wikipedia entry about NKRO](https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover). ## How do I know if my keyboard has NKRO In general, most keyboards will not be NKRO. "Gaming" and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit [https://keyboardchecker.com/](https://keyboardchecker.com/) and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website. ## What if my keyboard is not capable of NKRO? If you don't have a keyboard that's capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard) for more information. ## Known supported keyboards You can search for NKRO keyboards compatible with Plover by including "NKRO" or "anti-ghosting" in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: | Product Name | Manufacturer | Comments | Price | --------------------------- | ---------------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [27 GBP](https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/) | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [similar model](http://www.dareu.com/?m=home&c=View&a=index&aid=169), they may have the glitch mentioned above or not. | < $30 | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [$30](https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/) | K552 | Redragon | NKRO over USB | [$35](https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U) | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [$40](https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html) | ZM-K600S | Zalman | NKRO over USB | [$40](https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE) | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [$50](https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/) | K66 | Corsair | NKRO over USB | [$55](https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/) | K63 | Corsair | NKRO over USB (Works on Mac!) | [$80](https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT) | K68 | Corsair | NKRO over USB | $160-200 | K95 | Corsair | NKRO over USB | [~$200](https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM) | KG901 | Marvo | NKRO over USB | $30-70 AUD | STRAFE | Corsair | NKRO over USB | [$80](https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/) | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn't work on Mac) | [$85](https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/) | Vengeance K65 | Corsair | NKRO over USB | [$90](http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html) | C413 Carbon | Logitech | 26KRO | [$90](https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html) | Francium Pro | Deck | NKRO over USB when in "lightning" mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you'd be stuck with 6KRO). | [$94](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690) | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [$95](https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1) | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in "gaming" mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [$100](https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1) | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [$120](https://www.amazon.com/dp/B076XDTLBB) | G710+ | Logitech | NKRO over USB | [$130](https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard) | Majestouch-2 | Filco | NKRO over USB | [$167](https://amzn.to/oLy2xQ) | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [$169](https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/) | Apex M800 | SteelSeries | NKRO over USB | [$199](https://steelseries.com/gaming-keyboards/apex-m800) | Ergo Pro | Matias | NKRO over USB | [$200](https://matias.ca/ergopro/pc/) | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [$250](https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard) | Ergodox | Ergodox | NKRO over USB | [Parts €160.00 - Assembled €247.00](https://falba.tech/customize-your-keyboard/customize-your-ergodox/) | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc.| NKRO over USB | [EZ Only $270 - All Upgrades $354+](https://ergodox-ez.com) | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [ Planck only $180 - W/LED Backlighting $195 ](https://ergodox-ez.com/pages/planck) | Model01 | Keyboard.io | NKRO over USB | [$329](https://shop.keyboard.io) | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [$139](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917) ### Which type of key switch should I choose? Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a **light actuation force** on a **linear** switch. The light actuation makes it easier on your hands. For a chord like `TKPWHRAOEUGD` (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that's 640cN (~640g, ~22.6 oz). **For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.** | How many keys are in the average chord? | | | --- | --- | | 1:&nbsp;23<br />2:&nbsp;221<br />3:&nbsp;1115<br />4:&nbsp;3247<br />5:&nbsp;6168<br />6:&nbsp;7820<br />7:&nbsp;7293<br />8:&nbsp;5069<br />9:&nbsp;2707<br />10:&nbsp;1126<br />11:&nbsp;331<br />12:&nbsp;90<br />13:&nbsp;21<br />14:&nbsp;3<br />15:&nbsp;1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> | The linearity is recommended because it's been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn't process all the fingers' feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between **10cN and 20cN**, with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between **2mm and 30mm**. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that "speed switches" with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. | Switch | Stat | Note | Machines | | ------ | ---- | ---- | ------- | | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch | | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch | | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a "flat" force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch | | Cherry MX Red | 45 cN linear | | | | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | | | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | | |Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch | \* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: - Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro - Putting the Gateron Clear's 35 cN spring into the Kailh Silver for its earlier actuation point. - Trimming the springs of a linear switch by several mm to reduce force. - Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn't yet released to the wider market. - Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat. ## Adapt a keyboard for steno use ![](https://c1.staticflickr.com/5/4202/34180678224_98d3e26f1f_n.jpg) Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout. ### Keytoppers Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [Plover Store](http://plover.deco-craft.com/). You can also make your own keytoppers out of plastic or even coins. ![Laser-cut keytoppers sitting in a pile](https://i.imgur.com/cjWDy2J.jpg) ### Keycaps If you have a mechanical keyboard, it is likely your keys have a [Cherry MX stem](https://deskthority.net/wiki/Cherry_MX) and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. - [StenoToppers](https://cemrajc.github.io/stenotoppers/) is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service. <img src="https://imgur.com/FRwXu8x.jpg" width="400"> - The [G20 keycap set](https://pimpmykeyboard.com/g20-blank-keycap-sets/) from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (`STPH...`) down, so that they are close to the bottom row (`SKWR...`) - You can 3D-print a [steno-friendly keycap](https://github.com/morinted/stenomod_case). Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary). ## NKRO keyboards with an ortholinear layout Keyboards with an "ortholinear" layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: | Product Name | Manufacturer | Protocol/Connection | Comments | | ---------------------------------- | ------------------ | ------------------- | ----------------------- | | [ErgoDox](https://deskthority.net/wiki/ErgoDox) | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [guide to Starting Stenography with an Ergodox by Paul Fioravanti](https://www.paulfioravanti.com/blog/starting-stenography-ergodox/). | | [Planck](https://olkb.com/planck/) | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [guide to starting stenography with a Planck by DiDoesDigital](https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/). <br /> ![Planck steno keyboard](https://i.imgur.com/e9B2qpO.jpg)| |[Preonic](https://olkb.com/preonic/)| OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. | | [Gherkin](http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html) | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. | [Iris](https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard) | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don't feel as good as the Alienware's classic keyboard style. It's always best to try laptop keyboards at a local store, if possible. | Model | Screen Size | Manufacturer | Rollover | Price (USD) | Weight | | -------- | ----------- | --------------- | ------- | ----- | ------ | | [Alienware R3/R4](https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops) | 13", 15", 17" | Dell | n-key | **$1000** to $3000 | 5.8 to 9.8 lbs | | [GL553](https://www.asus.com/ca-en/Laptops/ROG-GL553VD/) | 15" | Asus | 30-key | $1200 | 5.5 lbs | | [Razer Blade Stealth 8th Gen](https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth) | 13" | Razer | 14-key | $1200+ | **2.98 lbs** | | [Zephyrus GM501](https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/) | 15" | Asus | 30-key | $1500 to $2200 | 5.5lbs | | [Omen X](https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html) | 17" | HP | n-key* | $1800 | 10.7 lbs | | [P57X](https://www.gigabyte.com/Laptop/P57X-v7) | 17" | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs | | [GL502](https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/) | 15" | Asus | 30-key | $1900 | 4.9 lbs | | [Aero 15/15x](https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H) | 15" | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs | | [Legion Y920](https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877) | 17" | Lenovo | 100-key* | $2200 | 10.1 lbs | | [Zephyrus GX501](https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/) | 15" | Asus | 30-key | $2500 | 4.85lbs | | Aorus [X5 v8](https://www.aorus.com/product-detail.php?p=744) and [X7 v8](https://www.aorus.com/product-detail.php?p=745) | 15", 17" | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs | | [Predator Triton 700](https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q) | 15" | Acer | n-key (clicky keys) | $3000 | 5.3 lbs | \* Untested for use with Plover ## Laptops that don't actually work with Plover After testing some of the laptops on the list above, they were found to not live up to their claims. | Model | Manufacturer | Claimed Rollover | Findings | | -------- | --------------- | ------- | ----- | | HP Omen [15](https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr) and [17](https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr) | HP | "26-key rollover anti-ghosting" | Combination "YUHJ" on Qwerty only produces 3 letters | | [GF62](https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html) and [GP72](https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M) | MSI | "anti-ghosting for up to 45 keys" | 99% of chords were OK, certain combinations wouldn't work -- e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. | </markdown> 718a586a113c767966fdd2a9a4077e6eabf70452 Dictionary format 0 11 56 2024-02-05T15:59:32Z Rice 1 Created page with "<markdown> This page contains an explanation for the syntax used in Plover's dictionaries, as well as the operators that control capitalization, spacing, keyboard shortcuts, and other commands. **Table of Contents** - [About Strokes and Dictionaries](#about-strokes-and-dictionaries) - [Plover's Default Dictionaries](#plovers-default-dictionaries) - [Dictionary priority](#dictionary-priority) - [JSON and RTF/CRE](#json-and-rtfcre) - [Limitations](#limitations) - [Pl..." wikitext text/x-wiki <markdown> This page contains an explanation for the syntax used in Plover's dictionaries, as well as the operators that control capitalization, spacing, keyboard shortcuts, and other commands. **Table of Contents** - [About Strokes and Dictionaries](#about-strokes-and-dictionaries) - [Plover's Default Dictionaries](#plovers-default-dictionaries) - [Dictionary priority](#dictionary-priority) - [JSON and RTF/CRE](#json-and-rtfcre) - [Limitations](#limitations) - [Plover Control Commands](#plover-control-commands) - [Sending Symbols](#sending-symbols) - [Prefix strokes](#prefix-strokes) - [Text Formatting](#text-formatting) - [Prefixes, Infixes, and Suffixes](#prefixes-infixes-and-suffixes) - [Glue Operator (Numbers, Fingerspelling)](#glue-operator-numbers-fingerspelling) - [Capitalizing](#capitalizing) - [Capitalize Next Word](#capitalize-next-word) - [Capitalize Last Word](#capitalize-last-word) - [Uncapitalizing](#uncapitalizing) - [Uncapitalize Next Word](#uncapitalize-next-word) - [Uncapitalize Last Word](#uncapitalize-last-word) - [Carrying Capitalization](#carrying-capitalization) - [Uppercasing (CAPS)](#uppercasing-caps) - [Uppercase Next Word](#uppercase-next-word) - [Uppercase Last Word](#uppercase-last-word) - [Spacing](#spacing) - [Suppress Next Space](#suppress-next-space) - [Manually Add a Space](#manually-add-a-space) - [Canceling Formatting of Next Word](#canceling-formatting-of-next-word) - [Format Currency](#format-currency) - [Conditional](#conditional) - [Friendly Command Names](#friendly-command-names) - [Undoable Line Breaks and Tabs](#undoable-line-breaks-and-tabs) - [Macros](#macros) - [Undo / Delete Last Stroke](#undo--delete-last-stroke) - [Repeat Last Stroke](#repeat-last-stroke) - [Toggle asterisk](#toggle-asterisk) - [Retroactively Add Space](#retroactively-add-space) - [Retroactively Delete Space](#retroactively-delete-space) - [Keyboard Shortcuts](#keyboard-shortcuts) - [Modifier Names](#modifier-names) - [Shortcut Key Names](#shortcut-key-names) - [Example Shortcuts](#example-shortcuts) - [Escaping Special Characters](#escaping-special-characters) - ["Do Nothing" Translation](#do-nothing-translation) - [Output Modes](#output-modes) - [Reset Command](#reset-command) - [Modes](#modes) - [Custom Modes](#custom-modes) - [Summary of suggested commands you can cut and paste into your dictionary](#summary-of-suggested-commands-you-can-cut-and-paste-into-your-dictionary) ## About Strokes and Dictionaries If you are new to stenography: - A _stroke_ is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. - Plover converts that input into English words and phrases on the screen, by using _dictionaries_. - The dictionaries map a stroke (or a combination of strokes) to an English word or phrase, number, punctuation symbol, emoji, software command, or a meta command for controlling spacing and capitalization. - Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the `user.json` dictionary that comes with Plover. ## Plover's Default Dictionaries Plover comes supplied with three dictionaries: - `main.json`. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. - `commands.json`. This contains [Plover Control Commands](#plover-control-commands). - `user.json`. This is available for your personal customizations. `user.json` is a blank dictionary. By default, the `user.json` dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation. > **Note:** We do not recommend you remove the `commands.json` dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. ### Dictionary priority If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the `user.json` dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list. > **Note:** With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down. ## JSON and RTF/CRE Plover supports two types of dictionaries: - **JSON** (the default and recommended format), and - **RTF/CRE**. RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications. > **Note:** With Plover 4.0+, there is a plugin `plover-python-dictionary` that allows you to use Python (`.py`) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries. ### Limitations There are some limitations with each format: - RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. - The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. - The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. ## Plover Control Commands You can control some aspects of Plover with [strokes](#strokes-and-dictionaries). Plover's default dictionary (`commands.json`) contains these commands: | Command name | Command | Default Stroke | Description | |----------|----------| ----------| ----------| | Add Translation | `{PLOVER:ADD_TRANSLATION}` | `TKUPT` (think DUPT for "Dictionary UPdaTe") | Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. | | Disable Output | `{PLOVER:SUSPEND}` | `PHRO*F` (think PLOF for "PLover OFf") | Stop translating steno. With a keyboard machine, you will be able to type normally again. | | Enable Output | `{PLOVER:RESUME}` | `PHRO*PB` (think PLON for "PLover ON") | Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. | | Toggle Output | `{PLOVER:TOGGLE}` | `PHROLG` (think PLOLG, for PLOver toGGLe) | Toggle between output being enabled and disabled. | These commands are not in `commands.json` by default, but can be added to a dictionary: | Command name| Command | _Suggested_ Stroke | Description | |----------|----------| ----------| ----------| | Look Up Stroke | `{PLOVER:LOOKUP}` | `PHR*UP` | Open a search dialog that you write a translation into to get a list of entries in your dictionaries. | | Suggestions | `{PLOVER:SUGGESTIONS}` | `PHROGS` (think PLOSHUN) for PLOver suggesTION) | Open and focus the plover suggestions window which will suggest alternative ways of writing | | Configure | `{PLOVER:CONFIGURE}` | `PHROFG` (think PLOFG, for PLOver conFiG) | Open and focus the Plover configuration window. | | Focus | `{PLOVER:FOCUS}` | `PHROFBGS` (think PLOFKS, for PLOver focus) | Open and focus the main Plover window. | | Quit | `{PLOVER:QUIT}` | `PHROBGT` (think PLOKT, for PLOver **qu**i**t**) | Quit Plover entirely. | | Set configuration | `{PLOVER:SET_CONFIG:option:value}`, `{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}` | | Set Plover config option. | Example for `SET_CONFIG` Plover command: * `{PLOVER:SET_CONFIG:'translation_frame_opacity':100}` * `{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}` As a side effect, `SET_CONFIG` also reload the (changed) dictionaries. ## Sending Symbols Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. ```json { "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" } ``` ## Prefix strokes It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: ```json { "S": "word", "/S": "{prefix^}" } ``` with a stroke `S`, the translation `"/S": "{prefix^}"` is chosen; unless the previous word is not finished (for example if the previous translation is `{con^}`), then the translation `"S": "word"` is chosen. It's possible to explicitly mark a translation as "finished" with `{$}` (or equivalently `{:word_end}`). See this [blackbox test](https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604) for an example. ## Text Formatting ### Prefixes, Infixes, and Suffixes Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. - `{^}` is the attach operator. - `{^ish}` is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. `RED/EURB` will output `reddish`. Note: addition of a second "d" caused by Plover's understanding of English orthography. - `{^}ish` is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead `redish`. - `{^-to-^}` is an infix, e.g. `day-to-day`. - `{in^}` is a prefix, e.g. `influx`. - Most custom punctuation entries will take advantage of the attach operator, e.g. `{^—^}` for an emdash. ### Glue Operator (Numbers, Fingerspelling) Glue is sort of like the [attach operator](#prefixes-infixes-suffixes) above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing *only* digits are glued, allowing you to output multiple number strokes to make a large number. - `{&}` is the glue operator. - `{&a}`, `{&b}`, `{&c}`, etc. are how the fingerspelling alphabet is made. - `{&th}` is a multiletter glue stroke, which can be useful (`TH*` in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: `THR/-R/#H/#A/KATS` to get "there are 45 cats" and only `#H` (4) and `#A` (5) are "glued" to each other. ### Capitalizing Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. #### Capitalize Next Word - `{-|}` The next word will have a capitalized first letter. In the default dictionary, we have `"KPA": "{-|}"`, which will capitalize the next word; and `"KPA*": "{^}{-|}"` which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like `Ms. {-|}`. **Default strokes:** - `KPA`: `{-|}` (think "cap") - `KPA*`: `{^}{-|}` (also suppresses space) #### Capitalize Last Word - `{*-|}` The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in `{*-|}{^ville}`. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as `Catville`. **Suggested stroke:** `KA*PD` ### Uncapitalizing #### Uncapitalize Next Word - `{>}` Forces the next letter to be lowercase, e.g. `{>}Plover` → `plover` **Suggested stroke:** `HRO*ER` (lower) #### Uncapitalize Last Word - `{*>}` Rewrite the last word to start with a lowercase letter, e.g. `Plover{*>}` → `plover` **Suggested stroke:** `HRO*ERD` (lowered) ### Carrying Capitalization - `{~|text}` or `{^~|text^}` where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! `"You can't eat that!" The baby ate on.` In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like `'til` or `'cause`. The default dictionary for Plover should use these operators where appropriate. ```json { "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" } ``` For a newline, the syntax would be `{^~|\n^}`. ### Uppercasing (CAPS) See [Output Modes](#output-modes) for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [Keyboard Shortcut](#keyboard-shortcuts) set to `{#Caps_Lock}` to activate the system CAPS lock like you can on your keyboard. **Suggested stroke:** `"KA*PS": "{MODE:CAPS}"` #### Uppercase Next Word - `{<}` Output next stroke in capital letters, e.g. `{<}cat` → `CAT` **Suggested stroke:** `KPA*L` (cap all) #### Uppercase Last Word - `{*<}` Rewrite last word in capital letters, e.g. `cat{*<}` → `CAT` **Suggested stroke:** `*UPD` ### Spacing #### Suppress Next Space - `{^^}` (or `{^}`) See also: [Retroactively Delete Space](#retroactively-delete-space) **Default stroke:** `TK-LS` (**D**e**l**ete **S**pace) This is a special case of an infix. See also [Prefixes, Infixes, and Suffixes](#prefixes-infixes-and-suffixes). #### Manually Add a Space - `{^ ^}` See also: [Retroactively Add Space](#retroactively-add-space) **Default stroke:** `S-P` (**SP**ace) This is a special case of an infix. See also [Prefixes, Infixes, and Suffixes](#prefixes-infixes-and-suffixes). ### Canceling Formatting of Next Word In order to cancel formatting of the next word, use the empty meta tag as your definition: - `{}` Using `{}` in front of a arrow key commands, as in `{}{#Left}`, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as `{.}`, includes action to capitalize next word. See also the ["do nothing" translation](#do-nothing-translation) ### Format Currency There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is `{*($c)}` where `$` is any currency symbol you'd like, and `c` is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. - `{*($c)}`: Standard English dollars + `23{*($c)}` → $23 + `2000.5{*($c)}` → $2,000.50 - `{*($c CAD)}`: You can include other text, e.g. when specifying a currency's country - `100{*($c CAD)}` → $100 CAD - `{*(c円)}`: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. - `2345{*(c円)}`: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ ### Conditional - `{=regex/text_if_match/text_if_no_match}` Conditional translation depending on the following text. Outputs `text_if_match` if the following text matches the regex, otherwise outputs `text_if_no_match`. Regex is case-sensitive. For example, `{=[AEIOUaeiou]/an/a}` outputs "a" unless the next word starts with a vowel, in which case it outputs "an". ## Friendly Command Names In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. | Command/macro/meta | Equivalent | |------|------------| | `{*}` | `=retrospective_toggle_asterisk` | | `{*!}` | `=retrospective_delete_space` | | `{*?}` | `=retrospective_insert_space` | | `{*+}` | `=repeat_last_stroke` | | `{^}` | `{:attach}` | | `{^word}` | `{:attach:^word}` | | `{word^}` | `{:attach:word^}` | | `{^word^}` | `{:attach:word}` | | `{&a}` | `{:glue:a}` | | `{-\|}` | `{:case:cap_first_word}` | | `{*-\|}` | `{:retro_case:cap_first_word}` | | `{~\|word}` | `{:carry_capitalize:word}` | | `{<}` | `{:case:upper_first_word}` | | `{*<}` | `{:retro_case:upper_first_word}` | | `{>}` | `{:case:lower_first_char}` | | `{*>}` | `{:retro_case:lower_first_char}` | | `{*($c)}` | `{:retro_currency:$c}` | | `{#shift(a)}` | `{:key_combo:shift(a)}` | | `{PLOVER:LOOKUP}` | `{:command:LOOKUP}` | | `{MODE:CAPS}` | `{:mode:CAPS}` | | `{.}` | `{:stop:.}` | | `{,}` | `{:comma:,}` | | `{$}` | `{:word_end}` | Note that currently the `{#a}` form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to `{:key_combo:a}` will enter the raw stroke into the text box. ## Undoable Line Breaks and Tabs When you use [keyboard shortcuts](#keyboard-shortcuts), the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, `{#return}` and `{#tab}` don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: - `\n` or `\r` for line breaks. - `\t` for tabs. For example: - `{^\n^}{-|}` This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. - `{^\t^}` This translation presses the tab key without any other spacing. It can be undone with the asterisk key. ## Macros Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. ### Undo / Delete Last Stroke - `=undo` The built-in "undo" macro is assigned to the asterisk key `*`. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is `=undo` ### Repeat Last Stroke - `{*+}` A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; `"#": "{*+}"`; causing `KAT/#/#` to behave like `KAT/KAT/KAT`. Repeat last stroke `{*+}` is very useful for keys that you repeat. For example, when you are moving around text in a document. **Suggested stroke:** `#` ### Toggle asterisk - `{*}` A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, `"#*": "{*}"`, when you write `KAT/#*` it will behave as if you wrote `KA*T`. Toggle asterisk `{*}` is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk `{*}` to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). **Suggested stroke:** `#*` ### Retroactively Add Space - `{*?}` A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained `PER` as "Perfect", `SWAEUGS` as "Situation" and `PER/SWAEUGS` as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the `{*?}` stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". **Suggested stroke:** `AFPS` (add space) ### Retroactively Delete Space - `{*!}` A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". **Suggested stroke:** `TK-FPS` (**d**elete space) ## Keyboard Shortcuts Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. **Note:** Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. *It used to be possible to send "+" by writing `{#plus}`, but the system has been updated.* - `{#}` is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: - `{#a b c d}` will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: - `{#equal plus}` will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. ### Modifier Names If you want to use a modifier, use it by name (e.g. `Shift_L`). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: | Modifier | Command Key Names (case-insensitive) | |----------|----------| | Shift | `Shift_L`, `Shift_R`, `shift` | | Control | `Control_L`, `Control_R`, `control` | | Alt | `Alt_L`, `Alt_R`, `alt`, `option` | | Super | `Super_L`, `Super_R`, `super`, `windows`, `command` | For modifiers, use parentheses to delimit where the keys are pressed down. ### Shortcut Key Names Here are the key names you'll want to use: | Keys | Command Key Names (case-insensitive) | |----------|----------| | Letters | `a`, `b`, `c`, `d`, `e`, `f`, `g`, `h`, `i`, `j`, `k`, `l`, `m`, `n`, `o`, `p`, `q`, `r`, `s`, `t`, `u`, `v`, `w`, `x`, `y`, `z` | | Accented Letters (international layouts) | `udiaeresis`, `eacute`, etc. | | Numbers | `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9` | | Control Keys | `Escape`, `Tab`, `Caps_Lock`, `space`, `BackSpace`, `Delete`, `Return`, etc. | | F-Keys | `F1`, `F2`, `F3`, `F4`, `F5`, `F6`, `F7`, `F8`, `F9`, `F10`, `F11`, `F12` | | Common Named Keys | `= equal`<br />`- minus`<br />`[ bracketleft`<br />`] bracketright`<br />`/ slash`<br />`\ backslash`<br />`' quoteright`<br />`, comma`<br />`. period`<br />`; semicolon`<br />`~ asciitilde`<br />`^ asciicircum`<br />`` ` quoteleft``<br />[…and more](https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21) | | Media Keys | **Common**: `AudioRaiseVolume`, `AudioLowerVolume`, `AudioMute`, `AudioNext`, `AudioPrev`, `AudioStop`, `AudioPlay`, `AudioPause`, `Eject`<br />**Mac**: `MonBrightnessUp`, `MonBrightnessDown`, `KbdBrightnessUp`, `KbdBrightnessDown`<br />**Windows**: `Back`, `Forward`, `Refresh`<br />**Linux**: XF86 key names are supported, for example `XF86_MonBrightnessUp` - refer to [the definition file in `python-xlib`](https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py) for the key names. | Consult the code for the [full list of supported keyboard shortcut keys](https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21). **Note:** a key name will determine a key to emulate with **no modifiers** based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: `{#at}` will only press the `2` key. To get the `@` symbol, we need to add the shift key: `{#shift(at)}`, which is functionally the same as `{#shift(2)}`. ### Example Shortcuts Here are some shortcuts. They are in JSON format: - `"STPH-G": "{#right}"` — right arrow on the keyboard, for moving the cursor to the right once - `"SKWR-G": "{#shift(right)}"` — shift and right arrow on the keyboard, for selecting one character - `"SKWR-BG": "{#control(shift(right))}"` — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux - `"SKWR-BG": "{#option(shift(right))}"` — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: - `"TKAO*UP": "{#control(c v v v)}"` — copy, then paste 3 times - `"SKPH-Z": "{#control(z shift(z))"` — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. `{#control(z shift(z))` is the same as `"{#CONTROL_L(Z SHIFT(Z))}"` ### Escaping Special Characters Most symbols (e.g. `+, =, ~, r`) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: | Symbol | Escaped Form | |----------|----------| | `\` | `\\` | | `{` | `\{` | | `}` | `\}` | `\` is a special case. It must be escaped only if there's any possible ambiguity. Special case: `=content` might be interpreted as the invocation of a macro named `content`. Use `{#}=content` instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: | Symbol | Escaped Form | |----------|----------| | `\` | `\\` | | `"` | `\"` | Example: | JSON | Plover show | Plover input | Plover output | |-|-|-|-| | `"ab"` | `ab` | `ab` | `<a> <b>` | | `"\\{"` | `\{` | `\{` | `<{>` | | `"\\\\{"` | `\\{` | `\\{` | `<\> <{>` | | `"\""` | `"` | `"` | `<">` | | `"\\"` | `\` | `\` | `<\>` | | `"\\\\"` | `\\` | `\\` | `<\> <\>` | | `"\\\\\\"` | `\\\` | `\\\` | `<\> <\> <\>` | | `"\n"` | `\n` | `\n` | `<\n>` | | `"\\n"` | `\\n` | `\\n` | `<\> <n>` | | `"\\x"` | `\x` | `\x` | `<\> <x>` | | `"\\\n"` | `\\n` | (none) | `<\> <\n>` | | `"\\\\n"` | `\\\n` | `\\\n` | `<\> <\> <n>` | Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. `(none)` means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. ### "Do Nothing" Translation You can use the keyboard shortcut syntax (`{#}`) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to `{#}` will effectively do nothing but show up in your logs. - `{#}` an effective "null" stroke. See also: [Canceling Formatting of Next Word](#canceling-formatting-of-next-word) ## Output Modes - `{MODE:}` is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. **Output modes** are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: 1. Turn on CAPS LOCK. 1. Write in capital letters. 1. Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. ### Reset Command You can reset the output mode to its default with `{MODE:RESET}`. > **Important**: We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident. - `{MODE:RESET}`: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: `"R-R": "{^~|\n^}{MODE:RESET}"` and `"TPEFBG": "{#escape}{MODE:RESET}"` - `{MODE:RESET_CASE}`: Exit caps, lower, or title case. - `{MODE:RESET_SPACE}`: Use spaces as normal. ### Modes There are some built-in modes you can use: | Dictionary Syntax | Sample Output | |-----------|---------| | `{MODE:CAPS}` | THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. | | `{MODE:TITLE}` | The Quick Brown Fox Jumps Over The Lazy Dog. | | `{MODE:LOWER}` | the quick brown fox jumps over the lazy dog. | | `{MODE:CAMEL}` | theQuickBrownFoxJumpsOverTheLazyDog. | | `{MODE:SNAKE}` | The_quick_brown_fox_jumps_over_the_lazy_dog. | ### Custom Modes You can define your own custom modes with the `SET_SPACE:` operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as `SET_SPACE:_`. Here are some other examples: | Dictionary Syntax | Sample Output | |---------|-----------| | `{MODE:SET_SPACE:}` | Thequickbrownfoxjumpsoverthelazydog. | | `{MODE:SET_SPACE:-}` | The-quick-brown-fox-jumps-over-the-lazy-dog. | | `{MODE:SET_SPACE:😁}` | The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. | ## Summary of suggested commands you can cut and paste into your dictionary Here is a summary of the suggested commands you can cut and paste into your personal dictionary: ```json { "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" } ``` > **Note:** The final entry must not have a trailing comma. </markdown> ca22c33d9e41aaefbd9d6eb82f572b2601c5746e 82 56 2024-02-05T18:01:43Z Rice 1 wikitext text/x-wiki <markdown> This page contains an explanation for the syntax used in Plover's dictionaries, as well as the operators that control capitalization, spacing, keyboard shortcuts, and other commands. **Table of Contents** - [About Strokes and Dictionaries](#about-strokes-and-dictionaries) - [Plover's Default Dictionaries](#plovers-default-dictionaries) - [Dictionary priority](#dictionary-priority) - [JSON and RTF/CRE](#json-and-rtfcre) - [Limitations](#limitations) - [Plover Control Commands](#plover-control-commands) - [Sending Symbols](#sending-symbols) - [Prefix strokes](#prefix-strokes) - [Text Formatting](#text-formatting) - [Prefixes, Infixes, and Suffixes](#prefixes-infixes-and-suffixes) - [Glue Operator (Numbers, Fingerspelling)](#glue-operator-numbers-fingerspelling) - [Capitalizing](#capitalizing) - [Capitalize Next Word](#capitalize-next-word) - [Capitalize Last Word](#capitalize-last-word) - [Uncapitalizing](#uncapitalizing) - [Uncapitalize Next Word](#uncapitalize-next-word) - [Uncapitalize Last Word](#uncapitalize-last-word) - [Carrying Capitalization](#carrying-capitalization) - [Uppercasing (CAPS)](#uppercasing-caps) - [Uppercase Next Word](#uppercase-next-word) - [Uppercase Last Word](#uppercase-last-word) - [Spacing](#spacing) - [Suppress Next Space](#suppress-next-space) - [Manually Add a Space](#manually-add-a-space) - [Canceling Formatting of Next Word](#canceling-formatting-of-next-word) - [Format Currency](#format-currency) - [Conditional](#conditional) - [Friendly Command Names](#friendly-command-names) - [Undoable Line Breaks and Tabs](#undoable-line-breaks-and-tabs) - [Macros](#macros) - [Undo / Delete Last Stroke](#undo--delete-last-stroke) - [Repeat Last Stroke](#repeat-last-stroke) - [Toggle asterisk](#toggle-asterisk) - [Retroactively Add Space](#retroactively-add-space) - [Retroactively Delete Space](#retroactively-delete-space) - [Keyboard Shortcuts](#keyboard-shortcuts) - [Modifier Names](#modifier-names) - [Shortcut Key Names](#shortcut-key-names) - [Example Shortcuts](#example-shortcuts) - [Escaping Special Characters](#escaping-special-characters) - ["Do Nothing" Translation](#do-nothing-translation) - [Output Modes](#output-modes) - [Reset Command](#reset-command) - [Modes](#modes) - [Custom Modes](#custom-modes) - [Summary of suggested commands you can cut and paste into your dictionary](#summary-of-suggested-commands-you-can-cut-and-paste-into-your-dictionary) ## About Strokes and Dictionaries If you are new to stenography: - A _stroke_ is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. - Plover converts that input into English words and phrases on the screen, by using _dictionaries_. - The dictionaries map a stroke (or a combination of strokes) to an English word or phrase, number, punctuation symbol, emoji, software command, or a meta command for controlling spacing and capitalization. - Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the `user.json` dictionary that comes with Plover. ## Plover's Default Dictionaries Plover comes supplied with three dictionaries: - `main.json`. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. - `commands.json`. This contains [Plover Control Commands](#plover-control-commands). - `user.json`. This is available for your personal customizations. `user.json` is a blank dictionary. By default, the `user.json` dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation. > **Note:** We do not recommend you remove the `commands.json` dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. ### Dictionary priority If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the `user.json` dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list. > **Note:** With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down. ## JSON and RTF/CRE Plover supports two types of dictionaries: - **JSON** (the default and recommended format), and - **RTF/CRE**. RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications. > **Note:** With Plover 4.0+, there is a plugin `plover-python-dictionary` that allows you to use Python (`.py`) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries. ### Limitations There are some limitations with each format: - RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. - The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. - The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. ## Plover Control Commands You can control some aspects of Plover with [strokes](#strokes-and-dictionaries). Plover's default dictionary (`commands.json`) contains these commands: | Command name | Command | Default Stroke | Description | |----------|----------| ----------| ----------| | Add Translation | `{PLOVER:ADD_TRANSLATION}` | `TKUPT` (think DUPT for "Dictionary UPdaTe") | Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. | | Disable Output | `{PLOVER:SUSPEND}` | `PHRO*F` (think PLOF for "PLover OFf") | Stop translating steno. With a keyboard machine, you will be able to type normally again. | | Enable Output | `{PLOVER:RESUME}` | `PHRO*PB` (think PLON for "PLover ON") | Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. | | Toggle Output | `{PLOVER:TOGGLE}` | `PHROLG` (think PLOLG, for PLOver toGGLe) | Toggle between output being enabled and disabled. | These commands are not in `commands.json` by default, but can be added to a dictionary: | Command name| Command | _Suggested_ Stroke | Description | |----------|----------| ----------| ----------| | Look Up Stroke | `{PLOVER:LOOKUP}` | `PHR*UP` | Open a search dialog that you write a translation into to get a list of entries in your dictionaries. | | Suggestions | `{PLOVER:SUGGESTIONS}` | `PHROGS` (think PLOSHUN) for PLOver suggesTION) | Open and focus the plover suggestions window which will suggest alternative ways of writing | | Configure | `{PLOVER:CONFIGURE}` | `PHROFG` (think PLOFG, for PLOver conFiG) | Open and focus the Plover configuration window. | | Focus | `{PLOVER:FOCUS}` | `PHROFBGS` (think PLOFKS, for PLOver focus) | Open and focus the main Plover window. | | Quit | `{PLOVER:QUIT}` | `PHROBGT` (think PLOKT, for PLOver **qu**i**t**) | Quit Plover entirely. | | Set configuration | `{PLOVER:SET_CONFIG:option:value}`, `{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}` | | Set Plover config option. | Example for `SET_CONFIG` Plover command: * `{PLOVER:SET_CONFIG:'translation_frame_opacity':100}` * `{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}` As a side effect, `SET_CONFIG` also reload the (changed) dictionaries. ## Sending Symbols Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. ```json { "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" } ``` ## Prefix strokes It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: ```json { "S": "word", "/S": "{prefix^}" } ``` with a stroke `S`, the translation `"/S": "{prefix^}"` is chosen; unless the previous word is not finished (for example if the previous translation is `{con^}`), then the translation `"S": "word"` is chosen. It's possible to explicitly mark a translation as "finished" with `{$}` (or equivalently `{:word_end}`). See this [blackbox test](https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604) for an example. ## Text Formatting ### Prefixes, Infixes, and Suffixes Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. - `{^}` is the attach operator. - `{^ish}` is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. `RED/EURB` will output `reddish`. Note: addition of a second "d" caused by Plover's understanding of English orthography. - `{^}ish` is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead `redish`. - `{^-to-^}` is an infix, e.g. `day-to-day`. - `{in^}` is a prefix, e.g. `influx`. - Most custom punctuation entries will take advantage of the attach operator, e.g. `{^—^}` for an emdash. ### Glue Operator (Numbers, Fingerspelling) Glue is sort of like the [attach operator](#prefixes-infixes-suffixes) above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing *only* digits are glued, allowing you to output multiple number strokes to make a large number. - `{&}` is the glue operator. - `{&a}`, `{&b}`, `{&c}`, etc. are how the fingerspelling alphabet is made. - `{&th}` is a multiletter glue stroke, which can be useful (`TH*` in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: `THR/-R/#H/#A/KATS` to get "there are 45 cats" and only `#H` (4) and `#A` (5) are "glued" to each other. ### Capitalizing Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. #### Capitalize Next Word - `{-|}` The next word will have a capitalized first letter. In the default dictionary, we have `"KPA": "{-|}"`, which will capitalize the next word; and `"KPA*": "{^}{-|}"` which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like `Ms. {-|}`. **Default strokes:** - `KPA`: `{-|}` (think "cap") - `KPA*`: `{^}{-|}` (also suppresses space) #### Capitalize Last Word - `{*-|}` The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in `{*-|}{^ville}`. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as `Catville`. **Suggested stroke:** `KA*PD` ### Uncapitalizing #### Uncapitalize Next Word - `{>}` Forces the next letter to be lowercase, e.g. `{>}Plover` → `plover` **Suggested stroke:** `HRO*ER` (lower) #### Uncapitalize Last Word - `{*>}` Rewrite the last word to start with a lowercase letter, e.g. `Plover{*>}` → `plover` **Suggested stroke:** `HRO*ERD` (lowered) ### Carrying Capitalization - `{~|text}` or `{^~|text^}` where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! `"You can't eat that!" The baby ate on.` In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like `'til` or `'cause`. The default dictionary for Plover should use these operators where appropriate. ```json { "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" } ``` For a newline, the syntax would be `{^~|\n^}`. ### Uppercasing (CAPS) See [Output Modes](#output-modes) for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [Keyboard Shortcut](#keyboard-shortcuts) set to `{#Caps_Lock}` to activate the system CAPS lock like you can on your keyboard. **Suggested stroke:** `"KA*PS": "{MODE:CAPS}"` #### Uppercase Next Word - `{<}` Output next stroke in capital letters, e.g. `{<}cat` → `CAT` **Suggested stroke:** `KPA*L` (cap all) #### Uppercase Last Word - `{*<}` Rewrite last word in capital letters, e.g. `cat{*<}` → `CAT` **Suggested stroke:** `*UPD` ### Spacing #### Suppress Next Space - `{^^}` (or `{^}`) See also: [Retroactively Delete Space](#retroactively-delete-space) **Default stroke:** `TK-LS` (**D**e**l**ete **S**pace) This is a special case of an infix. See also [Prefixes, Infixes, and Suffixes](#prefixes-infixes-and-suffixes). #### Manually Add a Space - `{^ ^}` See also: [Retroactively Add Space](#retroactively-add-space) **Default stroke:** `S-P` (**SP**ace) This is a special case of an infix. See also [Prefixes, Infixes, and Suffixes](#prefixes-infixes-and-suffixes). ### Canceling Formatting of Next Word In order to cancel formatting of the next word, use the empty meta tag as your definition: - `{}` Using `{}` in front of a arrow key commands, as in `{}{#Left}`, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as `{.}`, includes action to capitalize next word. See also the ["do nothing" translation](#do-nothing-translation) ### Format Currency There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is `{*($c)}` where `$` is any currency symbol you'd like, and `c` is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. - `{*($c)}`: Standard English dollars + `23{*($c)}` → $23 + `2000.5{*($c)}` → $2,000.50 - `{*($c CAD)}`: You can include other text, e.g. when specifying a currency's country - `100{*($c CAD)}` → $100 CAD - `{*(c円)}`: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. - `2345{*(c円)}`: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ ### Conditional - `{=regex/text_if_match/text_if_no_match}` Conditional translation depending on the following text. Outputs `text_if_match` if the following text matches the regex, otherwise outputs `text_if_no_match`. Regex is case-sensitive. For example, `{=[AEIOUaeiou]/an/a}` outputs "a" unless the next word starts with a vowel, in which case it outputs "an". ## Friendly Command Names In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. | Command/macro/meta | Equivalent | |------|------------| | `{*}` | `=retrospective_toggle_asterisk` | | `{*!}` | `=retrospective_delete_space` | | `{*?}` | `=retrospective_insert_space` | | `{*+}` | `=repeat_last_stroke` | | `{^}` | `{:attach}` | | `{^word}` | `{:attach:^word}` | | `{word^}` | `{:attach:word^}` | | `{^word^}` | `{:attach:word}` | | `{&a}` | `{:glue:a}` | | `{-\|}` | `{:case:cap_first_word}` | | `{*-\|}` | `{:retro_case:cap_first_word}` | | `{~\|word}` | `{:carry_capitalize:word}` | | `{<}` | `{:case:upper_first_word}` | | `{*<}` | `{:retro_case:upper_first_word}` | | `{>}` | `{:case:lower_first_char}` | | `{*>}` | `{:retro_case:lower_first_char}` | | `{*($c)}` | `{:retro_currency:$c}` | | `{#shift(a)}` | `{:key_combo:shift(a)}` | | `{PLOVER:LOOKUP}` | `{:command:LOOKUP}` | | `{MODE:CAPS}` | `{:mode:CAPS}` | | `{.}` | `{:stop:.}` | | `{,}` | `{:comma:,}` | | `{$}` | `{:word_end}` | Note that currently the `{#a}` form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to `{:key_combo:a}` will enter the raw stroke into the text box. ## Undoable Line Breaks and Tabs When you use [keyboard shortcuts](#keyboard-shortcuts), the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, `{#return}` and `{#tab}` don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: - `\n` or `\r` for line breaks. - `\t` for tabs. For example: - `{^\n^}{-|}` This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. - `{^\t^}` This translation presses the tab key without any other spacing. It can be undone with the asterisk key. ## Macros Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. ### Undo / Delete Last Stroke - `=undo` The built-in "undo" macro is assigned to the asterisk key `*`. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is `=undo` ### Repeat Last Stroke - `{*+}` A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; `"#": "{*+}"`; causing `KAT/#/#` to behave like `KAT/KAT/KAT`. Repeat last stroke `{*+}` is very useful for keys that you repeat. For example, when you are moving around text in a document. **Suggested stroke:** `#` ### Toggle asterisk - `{*}` A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, `"#*": "{*}"`, when you write `KAT/#*` it will behave as if you wrote `KA*T`. Toggle asterisk `{*}` is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk `{*}` to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). **Suggested stroke:** `#*` ### Retroactively Add Space - `{*?}` A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained `PER` as "Perfect", `SWAEUGS` as "Situation" and `PER/SWAEUGS` as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the `{*?}` stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". **Suggested stroke:** `AFPS` (add space) ### Retroactively Delete Space - `{*!}` A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". **Suggested stroke:** `TK-FPS` (**d**elete space) ## Keyboard Shortcuts Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. **Note:** Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. *It used to be possible to send "+" by writing `{#plus}`, but the system has been updated.* - `{#}` is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: - `{#a b c d}` will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: - `{#equal plus}` will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. ### Modifier Names If you want to use a modifier, use it by name (e.g. `Shift_L`). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: | Modifier | Command Key Names (case-insensitive) | |----------|----------| | Shift | `Shift_L`, `Shift_R`, `shift` | | Control | `Control_L`, `Control_R`, `control` | | Alt | `Alt_L`, `Alt_R`, `alt`, `option` | | Super | `Super_L`, `Super_R`, `super`, `windows`, `command` | For modifiers, use parentheses to delimit where the keys are pressed down. ### Shortcut Key Names Here are the key names you'll want to use: | Keys | Command Key Names (case-insensitive) | |----------|----------| | Letters | `a`, `b`, `c`, `d`, `e`, `f`, `g`, `h`, `i`, `j`, `k`, `l`, `m`, `n`, `o`, `p`, `q`, `r`, `s`, `t`, `u`, `v`, `w`, `x`, `y`, `z` | | Accented Letters (international layouts) | `udiaeresis`, `eacute`, etc. | | Numbers | `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9` | | Control Keys | `Escape`, `Tab`, `Caps_Lock`, `space`, `BackSpace`, `Delete`, `Return`, etc. | | F-Keys | `F1`, `F2`, `F3`, `F4`, `F5`, `F6`, `F7`, `F8`, `F9`, `F10`, `F11`, `F12` | | Common Named Keys | `= equal`<br />`- minus`<br />`[ bracketleft`<br />`] bracketright`<br />`/ slash`<br />`\ backslash`<br />`' quoteright`<br />`, comma`<br />`. period`<br />`; semicolon`<br />`~ asciitilde`<br />`^ asciicircum`<br />`` ` quoteleft``<br />[…and more](https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21) | | Media Keys | **Common**: `AudioRaiseVolume`, `AudioLowerVolume`, `AudioMute`, `AudioNext`, `AudioPrev`, `AudioStop`, `AudioPlay`, `AudioPause`, `Eject`<br />**Mac**: `MonBrightnessUp`, `MonBrightnessDown`, `KbdBrightnessUp`, `KbdBrightnessDown`<br />**Windows**: `Back`, `Forward`, `Refresh`<br />**Linux**: XF86 key names are supported, for example `XF86_MonBrightnessUp` - refer to [the definition file in `python-xlib`](https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py) for the key names. | Consult the code for the [full list of supported keyboard shortcut keys](https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21). **Note:** a key name will determine a key to emulate with **no modifiers** based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: `{#at}` will only press the `2` key. To get the `@` symbol, we need to add the shift key: `{#shift(at)}`, which is functionally the same as `{#shift(2)}`. ### Example Shortcuts Here are some shortcuts. They are in JSON format: - `"STPH-G": "{#right}"` — right arrow on the keyboard, for moving the cursor to the right once - `"SKWR-G": "{#shift(right)}"` — shift and right arrow on the keyboard, for selecting one character - `"SKWR-BG": "{#control(shift(right))}"` — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux - `"SKWR-BG": "{#option(shift(right))}"` — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: - `"TKAO*UP": "{#control(c v v v)}"` — copy, then paste 3 times - `"SKPH-Z": "{#control(z shift(z))"` — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. `{#control(z shift(z))` is the same as `"{#CONTROL_L(Z SHIFT(Z))}"` ### Escaping Special Characters Most symbols (e.g. `+, =, ~, r`) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: | Symbol | Escaped Form | |----------|----------| | `\` | `\\` | | `{` | `\{` | | `}` | `\}` | `\` is a special case. It must be escaped only if there's any possible ambiguity. Special case: `=content` might be interpreted as the invocation of a macro named `content`. Use `{#}=content` instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: | Symbol | Escaped Form | |----------|----------| | `\` | `\\` | | `"` | `\"` | Example: | JSON | Plover show | Plover input | Plover output | |-|-|-|-| | `"ab"` | `ab` | `ab` | `<a> <b>` | | `"\\{"` | `\{` | `\{` | `<{>` | | `"\\\\{"` | `\\{` | `\\{` | `<\> <{>` | | `"\""` | `"` | `"` | `<">` | | `"\\"` | `\` | `\` | `<\>` | | `"\\\\"` | `\\` | `\\` | `<\> <\>` | | `"\\\\\\"` | `\\\` | `\\\` | `<\> <\> <\>` | | `"\n"` | `\n` | `\n` | `<\n>` | | `"\\n"` | `\\n` | `\\n` | `<\> <n>` | | `"\\x"` | `\x` | `\x` | `<\> <x>` | | `"\\\n"` | `\\n` | (none) | `<\> <\n>` | | `"\\\\n"` | `\\\n` | `\\\n` | `<\> <\> <n>` | Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. `(none)` means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. ### "Do Nothing" Translation You can use the keyboard shortcut syntax (`{#}`) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to `{#}` will effectively do nothing but show up in your logs. - `{#}` an effective "null" stroke. See also: [Canceling Formatting of Next Word](#canceling-formatting-of-next-word) ## Output Modes - `{MODE:}` is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. **Output modes** are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: 1. Turn on CAPS LOCK. 1. Write in capital letters. 1. Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. ### Reset Command You can reset the output mode to its default with `{MODE:RESET}`. > **Important**: We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident. - `{MODE:RESET}`: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: `"R-R": "{^~|\n^}{MODE:RESET}"` and `"TPEFBG": "{#escape}{MODE:RESET}"` - `{MODE:RESET_CASE}`: Exit caps, lower, or title case. - `{MODE:RESET_SPACE}`: Use spaces as normal. ### Modes There are some built-in modes you can use: | Dictionary Syntax | Sample Output | |-----------|---------| | `{MODE:CAPS}` | THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. | | `{MODE:TITLE}` | The Quick Brown Fox Jumps Over The Lazy Dog. | | `{MODE:LOWER}` | the quick brown fox jumps over the lazy dog. | | `{MODE:CAMEL}` | theQuickBrownFoxJumpsOverTheLazyDog. | | `{MODE:SNAKE}` | The_quick_brown_fox_jumps_over_the_lazy_dog. | ### Custom Modes You can define your own custom modes with the `SET_SPACE:` operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as `SET_SPACE:_`. Here are some other examples: | Dictionary Syntax | Sample Output | |---------|-----------| | `{MODE:SET_SPACE:}` | Thequickbrownfoxjumpsoverthelazydog. | | `{MODE:SET_SPACE:-}` | The-quick-brown-fox-jumps-over-the-lazy-dog. | | `{MODE:SET_SPACE:😁}` | The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. | ## Summary of suggested commands you can cut and paste into your dictionary Here is a summary of the suggested commands you can cut and paste into your personal dictionary: ```json { "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" } ``` > **Note:** The final entry must not have a trailing comma. </markdown> [[Category:Plover]] 773a5ab26e511bf3cb2443e83e0d303abb71b737 Built-in tools 0 12 57 2024-02-05T16:00:20Z Rice 1 Created page with "<markdown> Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window. <!-- TODO: make formatting of button and checkbox names consistent. Right now, the long ones use quotes and the short ones use italics, but that may look a bit odd. --> ## Configure Plover The con..." wikitext text/x-wiki <markdown> Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window. <!-- TODO: make formatting of button and checkbox names consistent. Right now, the long ones use quotes and the short ones use italics, but that may look a bit odd. --> ## Configure Plover The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things. ## Paper tape Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "show paper tape" checkbox in the interface tab. ## Stroke suggestions When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "show suggestions" checkbox in the interface tab of the configuration window. ## Lookup tool A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in tools#Dictionary editor]]. ## Plugins manager The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the _Install/Update_ button. To uninstall a plugin, select it and click _Uninstall_. Some changes can't take effect until you restart Plover. Some plugins are themselves tools. ## Main window The main window can be used to reconnect the machine, enable and disable output and manage dictionaries. ### Dictionaries field This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown: - A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list. - If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default. - A checkbox to enable and disable the dictionary. - The name of the dictionary. Below the list of dictionaries, there are buttons to do the following actions: - Undo the last dictionary adding, deleting or reordering operation. - Use the [[dictionary editor|Built-in tools#Dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in. - Remove a dictionary from the list. - Add a dictionary to the list. - [[Add an entry|Built-in tools#Add translation dialog]] to the selected dictionary. - Move the selected dictionaries up on the list. - Move the selected dictionaries down on the list. ## Dictionary editor The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries. At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field. The strokes and translations on the list are editable. Below the list are three buttons: - Undo last action. - Remove selected entry/entries. - Add a new entry. ## Add translation dialog A dialog to add an entry to a dictionary. It has three fields: - Which dictionary to add an entry to. - The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries. - What they should translate to. Below this field you should see any strokes already mapped to the translation. - A cancel button that closes the dialog. - An okay button that adds the entry and closes the dialog. </markdown> 3d631e488cf0989e9267453ba2c60604aaa50641 83 57 2024-02-05T18:01:58Z Rice 1 wikitext text/x-wiki <markdown> Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window. <!-- TODO: make formatting of button and checkbox names consistent. Right now, the long ones use quotes and the short ones use italics, but that may look a bit odd. --> ## Configure Plover The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things. ## Paper tape Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "show paper tape" checkbox in the interface tab. ## Stroke suggestions When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "show suggestions" checkbox in the interface tab of the configuration window. ## Lookup tool A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in tools#Dictionary editor]]. ## Plugins manager The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the _Install/Update_ button. To uninstall a plugin, select it and click _Uninstall_. Some changes can't take effect until you restart Plover. Some plugins are themselves tools. ## Main window The main window can be used to reconnect the machine, enable and disable output and manage dictionaries. ### Dictionaries field This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown: - A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list. - If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default. - A checkbox to enable and disable the dictionary. - The name of the dictionary. Below the list of dictionaries, there are buttons to do the following actions: - Undo the last dictionary adding, deleting or reordering operation. - Use the [[dictionary editor|Built-in tools#Dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in. - Remove a dictionary from the list. - Add a dictionary to the list. - [[Add an entry|Built-in tools#Add translation dialog]] to the selected dictionary. - Move the selected dictionaries up on the list. - Move the selected dictionaries down on the list. ## Dictionary editor The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries. At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field. The strokes and translations on the list are editable. Below the list are three buttons: - Undo last action. - Remove selected entry/entries. - Add a new entry. ## Add translation dialog A dialog to add an entry to a dictionary. It has three fields: - Which dictionary to add an entry to. - The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries. - What they should translate to. Below this field you should see any strokes already mapped to the translation. - A cancel button that closes the dialog. - An okay button that adds the entry and closes the dialog. </markdown> [[Category:Plover]] bcbfca93742bbc10ccca042c7d5a7e8bd9bc3ead Open Steno Project timeline 0 13 58 2024-02-05T16:00:58Z Rice 1 Created page with "<markdown> The [Open Steno Project](https://www.opensteno.org) has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. ### September 2005 to March 2007 (18 months) > Backstory [Mirabai Knight](https://stenoknight.com/) attends the New York Career Institute to learn stenography at 225 words per minute. ### 2007 > Backstory Mirabai creates a dictionary..." wikitext text/x-wiki <markdown> The [Open Steno Project](https://www.opensteno.org) has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. ### September 2005 to March 2007 (18 months) > Backstory [Mirabai Knight](https://stenoknight.com/) attends the New York Career Institute to learn stenography at 225 words per minute. ### 2007 > Backstory Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. ### 2008 > Backstory Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? ### October 2009 > Plover Mirabai meets [Joshua Lifton](https://www.crunchbase.com/person/joshua-lifton#/entity), via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. ### June 2010 > Education Mirabai begins writing her Steno 101 series. ### October 2010 > Plover First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. ### December 2010 > Plover Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. ### April 2011 > Education Mirabai posts musings and thoughts about gamifying steno education. She calls it [Hover Plover](http://plover.stenoknight.com/2011/04/hover-plover.html) (later renamed to Steno Arcade). ### October 2011 > Plover Hesky Fisher starts working on Plover. ### May 2012 > Plover Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. ### April 2013 > Third-party [Brent Nesbitt](https://github.com/brentn) releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. ### July 2013 > Plover Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. ### August 2013 > Education Mike Neale introduces steno-training website [QwertySteno](http://qwertysteno.com/). > Hardware Josh Lifton announces plans to build an open source steno keyboard, the [Stenosaurus](http://stenosaurus.blogspot.ca/). ### September 2013 > Education Jay Liu introduces steno-training website [Plover Dojo](http://ploverdojo.appspot.com/). > Education Zach Brown, a technical writer, publishes the first half of [Learn Plover!](https://www.openstenoproject.org/learn-plover/). Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. ### January 2014 > Plover Now at version 2.5.8, Hesky slows development to focus on other projects. ### April 2014 > Hardware Emanuele Caruso announces the [Stenoboard](http://www.stenoboard.com/), an open source stenographic split 3D-printed keyboard. ### Summer 2015 > Plover Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. ### August 2015 > Plover Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. ### September 2015 > Plover Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. ### December 2015 > Hardware Scott Urueta announces and starts selling the [SOFT/HRUF](https://softhruf.love), an open source 3D-printed steno machine with light linear mechanical switches. ### March 2016 > Plover "Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed. > Education [Steno Arcade](http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html) crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. ### April 2016 > Plover Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. ### September 2016 > Hardware Charley Shattuck starts to sell his customizable steno machine, the [Stenomod](https://stenomod.blogspot.ca/). The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. ### October 2016 > Education Josh Grams introduces JavaScript-based drilling website [Steno Jig](https://joshuagrams.github.io/steno-jig/). ### November 2016 > Plover Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. ### The future - 2017 and onwards Don't worry, Plover development continues. You can see the [issues and feature requests on GitHub](https://github.com/openstenoproject/plover/issues), join in the developer discussions by joining the [Plover #devtalk forum](https://discordapp.com/channels/136953735426473984/144999734254370816), and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. ### January 2019 > Hardware Jane from [gBoards](https://www.gboards.ca/) begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. ### February 2021 > Hardware Peter from [StenoKeyboards](https://stenokeyboards.com/) starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. ### April 2021 > Hardware Nathan and Lenno from [Nolltronics](https://nolltronics.com/) releases the EcoSteno and starts to sell them. ### July 2021 > Plover Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. </markdown> d93a6edb54cafe72ced1cefad8c90ff8785f4936 84 58 2024-02-05T18:02:16Z Rice 1 wikitext text/x-wiki <markdown> The [Open Steno Project](https://www.opensteno.org) has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. ### September 2005 to March 2007 (18 months) > Backstory [Mirabai Knight](https://stenoknight.com/) attends the New York Career Institute to learn stenography at 225 words per minute. ### 2007 > Backstory Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. ### 2008 > Backstory Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? ### October 2009 > Plover Mirabai meets [Joshua Lifton](https://www.crunchbase.com/person/joshua-lifton#/entity), via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. ### June 2010 > Education Mirabai begins writing her Steno 101 series. ### October 2010 > Plover First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. ### December 2010 > Plover Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. ### April 2011 > Education Mirabai posts musings and thoughts about gamifying steno education. She calls it [Hover Plover](http://plover.stenoknight.com/2011/04/hover-plover.html) (later renamed to Steno Arcade). ### October 2011 > Plover Hesky Fisher starts working on Plover. ### May 2012 > Plover Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. ### April 2013 > Third-party [Brent Nesbitt](https://github.com/brentn) releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. ### July 2013 > Plover Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. ### August 2013 > Education Mike Neale introduces steno-training website [QwertySteno](http://qwertysteno.com/). > Hardware Josh Lifton announces plans to build an open source steno keyboard, the [Stenosaurus](http://stenosaurus.blogspot.ca/). ### September 2013 > Education Jay Liu introduces steno-training website [Plover Dojo](http://ploverdojo.appspot.com/). > Education Zach Brown, a technical writer, publishes the first half of [Learn Plover!](https://www.openstenoproject.org/learn-plover/). Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. ### January 2014 > Plover Now at version 2.5.8, Hesky slows development to focus on other projects. ### April 2014 > Hardware Emanuele Caruso announces the [Stenoboard](http://www.stenoboard.com/), an open source stenographic split 3D-printed keyboard. ### Summer 2015 > Plover Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. ### August 2015 > Plover Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. ### September 2015 > Plover Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. ### December 2015 > Hardware Scott Urueta announces and starts selling the [SOFT/HRUF](https://softhruf.love), an open source 3D-printed steno machine with light linear mechanical switches. ### March 2016 > Plover "Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed. > Education [Steno Arcade](http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html) crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. ### April 2016 > Plover Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. ### September 2016 > Hardware Charley Shattuck starts to sell his customizable steno machine, the [Stenomod](https://stenomod.blogspot.ca/). The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. ### October 2016 > Education Josh Grams introduces JavaScript-based drilling website [Steno Jig](https://joshuagrams.github.io/steno-jig/). ### November 2016 > Plover Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. ### The future - 2017 and onwards Don't worry, Plover development continues. You can see the [issues and feature requests on GitHub](https://github.com/openstenoproject/plover/issues), join in the developer discussions by joining the [Plover #devtalk forum](https://discordapp.com/channels/136953735426473984/144999734254370816), and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. ### January 2019 > Hardware Jane from [gBoards](https://www.gboards.ca/) begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. ### February 2021 > Hardware Peter from [StenoKeyboards](https://stenokeyboards.com/) starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. ### April 2021 > Hardware Nathan and Lenno from [Nolltronics](https://nolltronics.com/) releases the EcoSteno and starts to sell them. ### July 2021 > Plover Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. </markdown> [[Category:Plover]] f07c38874c7b12caa1af9469138a93d90c734b2e Troubleshooting issues 0 14 59 2024-02-05T16:01:34Z Rice 1 Created page with "<markdown> Some common problems and solutions are recorded here. If you're having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [Plover bug tracker](https://github.com/openstenoproject/plover/issues) for known reported issues. -------------------- <!-- TOC --> - [Running in Debug Mode](#running-in-debug-mode) - [Issues](#issues) - [General](#general) - [Plover does not recognize my USB keyboard or..." wikitext text/x-wiki <markdown> Some common problems and solutions are recorded here. If you're having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [Plover bug tracker](https://github.com/openstenoproject/plover/issues) for known reported issues. -------------------- <!-- TOC --> - [Running in Debug Mode](#running-in-debug-mode) - [Issues](#issues) - [General](#general) - [Plover does not recognize my USB keyboard or steno machine](#plover-does-not-recognize-my-usb-keyboard-or-steno-machine) - [Strokes no longer appear when using keyboard](#strokes-no-longer-appear-when-using-keyboard) - [When using TX Bolt, any chord with `SW-` in it doesn't come out right](#when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right) - [Plugins Manager](#plugins-manager) - [Dictionary issues](#dictionary-issues) - [Dictionary priority](#dictionary-priority) - [If you have your own dictionary already](#if-you-have-your-own-dictionary-already) - [About the default dictionaries](#about-the-default-dictionaries) - [main.json](#mainjson) - [commands.json](#commandsjson) - [user.json](#userjson) - [Windows](#windows-1) - [Unrecognized keystrokes and other strange behavior](#unrecognized-keystrokes-and-other-strange-behavior) - [No output](#no-output) - [macOS](#macos) - [Plover does not run (macOS)](#plover-does-not-run-macos) - [Unrecognized keystrokes](#unrecognized-keystrokes) - [Linux](#linux) - [Unrecognized keystrokes](#unrecognized-keystrokes-1) - [Linux dynamic keyboard layout switching is not working](#linux-dynamic-keyboard-layout-switching-is-not-working) - [Delayed/slow output when using gnome-shell and the keyboard machine](#delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine) <!-- /TOC --> # Running in Debug Mode Follow instructions in [Invoke Plover from the command line](https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line). You need to invoke the command ``` plover --log-level debug ``` In particular, the exact commands are * `plover_console.exe --log-level debug` for Windows * `/Applications/Plover.app/Contents/MacOS/Plover --log-level debug` for macOS * `./plover.AppImage --log-level debug` for Linux (AppImage) # Issues ## General ### Plover does not recognize my USB keyboard or steno machine > **Note**: Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. See the [Supported Hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware) for configuration instructions specific to your machine. If you know your machine has been configured correctly, and Plover doesn't recognize your keyboard or steno machine: 1. Confirm your keyboard or steno machine is plugged into your computer. 1. On the Plover control panel, check if it states the machine is connected or disconnected. * If it states the machine is disconnected, press the Reconnect button (this is to the right of "connected" or "disconnected" message). 1. If Plover still doesn't recognize your machine, try closing and relaunching Plover. ### Strokes no longer appear when using keyboard If Plover is enabled with [arpeggiating](https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate) and strokes were previously registered, check that arpeggiating has not begun. Press `<space>` (by default) to toggle arpeggiate. ### When using TX Bolt, any chord with `SW-` in it doesn't come out right Solution: in the serial settings, uncheck "Xon/Xoff" under "Flow control". This will solve the issue where using S and W in a chord causes Plover to ignore those keys. ## Plugins Manager If you're running Plover 4.x and are missing the plugins manager or it's not working as expected, you can try [manually installing plugins](https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins) ## Dictionary issues By default, Plover ships with three dictionaries: `main.json`, `commands.json` and `user.json`. This can be a source of confusion to new users. ### Dictionary priority If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the `user.json` dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority. ### If you have your own dictionary already If you have your own dictionary already, you'll probably want to remove `main.json` and `custom.json` and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the `commands.json` dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through `commands.json`, and remap strokes that you want to use in your own theory. ## About the default dictionaries ### main.json `main.json` is the core default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. ### commands.json `commands.json` contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: `TKUPT`. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. ### user.json `user.json` is a blank dictionary. By default, the `user.json` dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. ## Windows ### Unrecognized keystrokes and other strange behavior * Disable AutoKey if you're getting strange behavior with Plover. ### No Output Double check the following: - Your machine is connected - Plover's output is set to "Enabled" - You can see strokes in the paper tape If nothing is "typed" when you're focused in a program like "Notepad", something may be interfering with Plover's ability to send keystrokes. You can try: - Running Plover as an Administrator - If you are a Citrix user, reinstall Citrix and make sure to opt-out of [app protection](https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html) ## macOS ### Plover does not run * If you use a keyboard instead of a steno machine, Plover needs [Assistive Device Permissions](https://support.apple.com/en-ca/guide/mac-help/mh43185/mac). * If Plover does not have the permission, you'll see this error message > Exception: Enable access for assistive devices. * From the Catalina version of macOS, you may need to enable both the `Plover` app and the `env` app under Security & Privacy > Privacy > Accessibility. Alternatively, upgrade Plover to a newer version. See [issue 1134](https://github.com/openstenoproject/plover/issues/1134) for more details. * If Plover is shown to have Accessibility permissions but it still won't output anything/shows the error message above, there may be something wrong with the permissions. (some situations such as operating system upgrade/Plover version upgrade might trigger this issue.) There are several ways you can try to fix them, from least destructive to most destructive: 1. Removing Plover from the list of Accessibility permissions using the little `-` button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable. 2. Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications > Utilities > Terminal.app), copy/paste the following command and press Enter: ``` sudo tccutil reset Accessibility ``` Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write. 3. Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead. ``` sudo tccutil reset All ``` 4. Alternatively, as a debugging step, [invoke Plover in the terminal](https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line) with the command ``` /Applications/Plover.app/Contents/MacOS/Plover ``` then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!) * Plover will not work if you are using [Karabiner Elements](https://github.com/tekezo/Karabiner-Elements), or generally speaking any program that allow customizing the keyboard might interfere with Plover. ### Unrecognized keystrokes macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as `TO/FPLT` producing `t.` instead of `to.` To disable this, follow the instructions in this article: ["How to Disable the Character Accent Menu in OS X Mountain Lion"](https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/). ## Linux ### Missing or jumbled output * IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (`HAT` becomes `AHT` or `AT`). ### Linux dynamic keyboard layout switching is not working * Plover does not handle dynamic keyboard layout switching: see [bug #298](https://github.com/openstenoproject/plover/issues/298). ### Delayed/slow output when using gnome-shell and the keyboard machine * It's a gnome-shell [bug](https://github.com/openstenoproject/plover/issues/1030), unfortunately there's no known workaround. </markdown> c57298ee54a0f899ccb31e943be0eb2b81a24d97 85 59 2024-02-05T18:02:31Z Rice 1 wikitext text/x-wiki <markdown> Some common problems and solutions are recorded here. If you're having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [Plover bug tracker](https://github.com/openstenoproject/plover/issues) for known reported issues. -------------------- <!-- TOC --> - [Running in Debug Mode](#running-in-debug-mode) - [Issues](#issues) - [General](#general) - [Plover does not recognize my USB keyboard or steno machine](#plover-does-not-recognize-my-usb-keyboard-or-steno-machine) - [Strokes no longer appear when using keyboard](#strokes-no-longer-appear-when-using-keyboard) - [When using TX Bolt, any chord with `SW-` in it doesn't come out right](#when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right) - [Plugins Manager](#plugins-manager) - [Dictionary issues](#dictionary-issues) - [Dictionary priority](#dictionary-priority) - [If you have your own dictionary already](#if-you-have-your-own-dictionary-already) - [About the default dictionaries](#about-the-default-dictionaries) - [main.json](#mainjson) - [commands.json](#commandsjson) - [user.json](#userjson) - [Windows](#windows-1) - [Unrecognized keystrokes and other strange behavior](#unrecognized-keystrokes-and-other-strange-behavior) - [No output](#no-output) - [macOS](#macos) - [Plover does not run (macOS)](#plover-does-not-run-macos) - [Unrecognized keystrokes](#unrecognized-keystrokes) - [Linux](#linux) - [Unrecognized keystrokes](#unrecognized-keystrokes-1) - [Linux dynamic keyboard layout switching is not working](#linux-dynamic-keyboard-layout-switching-is-not-working) - [Delayed/slow output when using gnome-shell and the keyboard machine](#delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine) <!-- /TOC --> # Running in Debug Mode Follow instructions in [Invoke Plover from the command line](https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line). You need to invoke the command ``` plover --log-level debug ``` In particular, the exact commands are * `plover_console.exe --log-level debug` for Windows * `/Applications/Plover.app/Contents/MacOS/Plover --log-level debug` for macOS * `./plover.AppImage --log-level debug` for Linux (AppImage) # Issues ## General ### Plover does not recognize my USB keyboard or steno machine > **Note**: Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. See the [Supported Hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware) for configuration instructions specific to your machine. If you know your machine has been configured correctly, and Plover doesn't recognize your keyboard or steno machine: 1. Confirm your keyboard or steno machine is plugged into your computer. 1. On the Plover control panel, check if it states the machine is connected or disconnected. * If it states the machine is disconnected, press the Reconnect button (this is to the right of "connected" or "disconnected" message). 1. If Plover still doesn't recognize your machine, try closing and relaunching Plover. ### Strokes no longer appear when using keyboard If Plover is enabled with [arpeggiating](https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate) and strokes were previously registered, check that arpeggiating has not begun. Press `<space>` (by default) to toggle arpeggiate. ### When using TX Bolt, any chord with `SW-` in it doesn't come out right Solution: in the serial settings, uncheck "Xon/Xoff" under "Flow control". This will solve the issue where using S and W in a chord causes Plover to ignore those keys. ## Plugins Manager If you're running Plover 4.x and are missing the plugins manager or it's not working as expected, you can try [manually installing plugins](https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins) ## Dictionary issues By default, Plover ships with three dictionaries: `main.json`, `commands.json` and `user.json`. This can be a source of confusion to new users. ### Dictionary priority If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the `user.json` dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority. ### If you have your own dictionary already If you have your own dictionary already, you'll probably want to remove `main.json` and `custom.json` and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the `commands.json` dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through `commands.json`, and remap strokes that you want to use in your own theory. ## About the default dictionaries ### main.json `main.json` is the core default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. ### commands.json `commands.json` contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: `TKUPT`. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. ### user.json `user.json` is a blank dictionary. By default, the `user.json` dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. ## Windows ### Unrecognized keystrokes and other strange behavior * Disable AutoKey if you're getting strange behavior with Plover. ### No Output Double check the following: - Your machine is connected - Plover's output is set to "Enabled" - You can see strokes in the paper tape If nothing is "typed" when you're focused in a program like "Notepad", something may be interfering with Plover's ability to send keystrokes. You can try: - Running Plover as an Administrator - If you are a Citrix user, reinstall Citrix and make sure to opt-out of [app protection](https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html) ## macOS ### Plover does not run * If you use a keyboard instead of a steno machine, Plover needs [Assistive Device Permissions](https://support.apple.com/en-ca/guide/mac-help/mh43185/mac). * If Plover does not have the permission, you'll see this error message > Exception: Enable access for assistive devices. * From the Catalina version of macOS, you may need to enable both the `Plover` app and the `env` app under Security & Privacy > Privacy > Accessibility. Alternatively, upgrade Plover to a newer version. See [issue 1134](https://github.com/openstenoproject/plover/issues/1134) for more details. * If Plover is shown to have Accessibility permissions but it still won't output anything/shows the error message above, there may be something wrong with the permissions. (some situations such as operating system upgrade/Plover version upgrade might trigger this issue.) There are several ways you can try to fix them, from least destructive to most destructive: 1. Removing Plover from the list of Accessibility permissions using the little `-` button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable. 2. Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications > Utilities > Terminal.app), copy/paste the following command and press Enter: ``` sudo tccutil reset Accessibility ``` Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write. 3. Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead. ``` sudo tccutil reset All ``` 4. Alternatively, as a debugging step, [invoke Plover in the terminal](https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line) with the command ``` /Applications/Plover.app/Contents/MacOS/Plover ``` then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!) * Plover will not work if you are using [Karabiner Elements](https://github.com/tekezo/Karabiner-Elements), or generally speaking any program that allow customizing the keyboard might interfere with Plover. ### Unrecognized keystrokes macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as `TO/FPLT` producing `t.` instead of `to.` To disable this, follow the instructions in this article: ["How to Disable the Character Accent Menu in OS X Mountain Lion"](https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/). ## Linux ### Missing or jumbled output * IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (`HAT` becomes `AHT` or `AT`). ### Linux dynamic keyboard layout switching is not working * Plover does not handle dynamic keyboard layout switching: see [bug #298](https://github.com/openstenoproject/plover/issues/298). ### Delayed/slow output when using gnome-shell and the keyboard machine * It's a gnome-shell [bug](https://github.com/openstenoproject/plover/issues/1030), unfortunately there's no known workaround. </markdown> [[Category:Plover]] a4bc0ddbda85abb8cee38a7d2a0db01359bf01ee FAQ 0 15 60 2024-02-05T16:02:10Z Rice 1 Created page with "<markdown> **Table of Contents** - [Plover](#plover) - [What is stenography?](#what-is-stenography) - [How fast can stenographers write?](#how-fast-can-stenographers-write) - [What is Plover?](#what-is-plover) - [Why "Plover"?](#why-plover) - [Who's responsible for Plover's development?](#whos-responsible-for-plovers-development) - [Why does Plover exist?](#why-does-plover-exist) - [How does Stenography compare to typing?](#how-does-stenography-compare-to-..." wikitext text/x-wiki <markdown> **Table of Contents** - [Plover](#plover) - [What is stenography?](#what-is-stenography) - [How fast can stenographers write?](#how-fast-can-stenographers-write) - [What is Plover?](#what-is-plover) - [Why "Plover"?](#why-plover) - [Who's responsible for Plover's development?](#whos-responsible-for-plovers-development) - [Why does Plover exist?](#why-does-plover-exist) - [How does Stenography compare to typing?](#how-does-stenography-compare-to-typing) - [What does using Plover look like?](#what-does-using-plover-look-like) - [How does it compare to alternative layouts like Dvorak and Colemak?](#how-does-it-compare-to-alternative-layouts-like-dvorak-and-colemak) - [If I learn steno, will it make using QWERTY harder?](#if-i-learn-steno-will-it-make-using-qwerty-harder) - [Why isn't steno more popular than QWERTY?](#why-isnt-steno-more-popular-than-qwerty) - [Will stenography be replaced with automatic voice recognition?](#will-stenography-be-replaced-with-automatic-voice-recognition) - [What theory is Plover's default dictionary based on?](#what-theory-is-plovers-default-dictionary-based-on) - [Where can I find other people who use Plover?](#where-can-i-find-other-people-who-use-plover) - [How can I help?](#how-can-i-help) - [Using Plover](#using-plover) - [How can I get started?](#how-can-i-get-started) - [What hardware do I need?](#what-hardware-do-i-need) - [Can I still get by without a professional machine?](#can-i-still-get-by-without-a-professional-machine) - [Can I use Plover for normal computer use?](#can-i-use-plover-for-normal-computer-use) - [Can I use Plover for programming?](#can-i-use-plover-for-programming) - [Can I use Plover for languages other than English?](#can-i-use-plover-for-languages-other-than-english) - [How long does it take to learn?](#how-long-does-it-take-to-learn) - [What's a brief/stroke/arpeggiating/etc.?](#whats-a-briefstrokearpeggiatingetc) - [What can't Plover do?](#what-cant-plover-do) - [Comparisons to professional stenography](#comparisons-to-professional-stenography) - [Why does steno need amateurs?](#why-does-steno-need-amateurs) - [What is Steno Arcade?](#what-is-steno-arcade) - [Is Steno Arcade going to put steno schools out of business?](#is-steno-arcade-going-to-put-steno-schools-out-of-business) - [How is Plover different from commercial steno programs?](#how-is-plover-different-from-commercial-steno-programs) - [Is Plover going to put CAT software companies out of business?](#is-plover-going-to-put-cat-software-companies-out-of-business) - [What are some features in Plover not commonly found in most CAT software?](#what-are-some-features-in-plover-not-commonly-found-in-most-cat-software) - [Can I use my Luminex/Stentura/Lightspeed/other stenotype machine?](#can-i-use-my-luminexstenturalightspeedother-stenotype-machine) - [Can I use my dictionaries from another program?](#can-i-use-my-dictionaries-from-another-program) ## Plover ### What is stenography? *Stan's Quick and Dirty: How Stenography Works*<br> [![Plover Dictionary Update Demo](https://img.youtube.com/vi/62l64Acfidc/0.jpg)](https://youtu.be/62l64Acfidc "Plover Dictionary Update Demo")<br> [(click to view video — 3:13)](https://youtu.be/62l64Acfidc "Plover Dictionary Update Demo") [Stenography](https://en.wikipedia.org/wiki/Shorthand) is a form of shorthand writing/typing, usually done on a [special machine](https://en.wikipedia.org/wiki/Stenotype) (although with Plover, you can use computer keyboard that has [n-key rollover](https://en.wikipedia.org/wiki/Rollover_(key))). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. ### How fast can stenographers write? | Method | Typical Speed | | ----------|-----------| | Handwriting | 30 WPM | | Average Typist | [40 WPM](https://www.youtube.com/watch?v=P5Ml_y5-KmI&list=PLFCCB3E328121B261) | | Fast Typist | [120 WPM](https://www.youtube.com/watch?v=k71XmfDM1dU) | | Typing World Record | [200 WPM](https://www.youtube.com/watch?v=FgjivmUE9o8) | | Voice Writer | 180 WPM | | Average Speech | 200 WPM | | Amateur Stenographer | [160 WPM](https://www.youtube.com/watch?v=a9hVQ5BT1ls) | | Professional Stenographer | [225 WPM](https://www.youtube.com/watch?v=UNmqwUEEJA4) | | [Steno World Record](https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing)) | 360 WPM | In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [How long does it take to learn?](#how-long-does-it-take-to-learn)) ### What is Plover? Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno. Plover is available on Windows, Mac and Linux. To get started, follow the [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover). ### Why "Plover"? The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [here](http://plover.stenoknight.com/2010/03/why-plover.html). ### Who's responsible for Plover's development? Plover was originally created by [Mirabai Knight](http://www.blogger.com/profile/16494847224950297255) and [Joshua Harlan Lifton](http://launchpad.net/~joshua-harlan-lifton), and is the software arm of [The Open Steno Project](http://openstenoproject.org/), an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin. ### Why does Plover exist? Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [Mirabai Knight](http://StenoKnight.com) to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [Dvorak](http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard) or [Colemak](http://en.wikipedia.org/wiki/Keyboard_layout#Colemak)), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: 1. Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. 1. Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. ### How does Stenography compare to typing? - Typing is (usually) data entry with single fingers Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [Chopin's Fantasie Impromptu](https://www.youtube.com/watch?v=tvm2ZsRv3C8). Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. - Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other. > "When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." > > — [Learn Plover!](https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys) Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [Rachmaninoff's Prelude in G Minor](https://www.youtube.com/watch?v=4QB7ugJnHgs). Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. ### What does using Plover look like? | **QWERTY versus Stenography on Steno Arcade** | **Plover wins the race!** | **Demonstration of Plover with Qwerty Keyboard** | | - | - | - | | [![QWERTY versus Stenography on Steno Arcade](https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg)](https://youtu.be/UtQzTUEuPWo?t=8s)<br>[(click to view video — 3:25)](https://youtu.be/UtQzTUEuPWo?t=8s) | [![Plover Wins the Race!](https://img.youtube.com/vi/jkUyg_uoidY/0.jpg)](https://www.youtube.com/watch?v=jkUyg_uoidY)<br>[(click to view video — 0:30)](https://www.youtube.com/watch?v=jkUyg_uoidY) | [![Demonstration of Plover with Qwerty Keyboard](https://img.youtube.com/vi/JXQQzW99cAI/0.jpg)](https://www.youtube.com/watch?v=JXQQzW99cAI)<br>[(click to view video — 1:05)](https://www.youtube.com/watch?v=JXQQzW99cAI) | | **Realtime Text to Speech with Plover** | **Coding in Stenography, Quick Demo** | **Rails 7: The Steno Demo** | | [![Realtime Text to Speech with Plover](https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg)](https://www.youtube.com/watch?v=K3MYFT6VZk8)<br>[(click to view video — 3:36)](https://www.youtube.com/watch?v=K3MYFT6VZk8) | [![Coding in Stenography, Quick Demo](https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg)](https://www.youtube.com/watch?v=RBBiri3CD6w)<br>[(click to view video — 2:00)](https://www.youtube.com/watch?v=RBBiri3CD6w)| [![Rails 7: The Steno Demo](https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg)](https://www.youtube.com/watch?v=q7g0ml60LGY)<br>[(click to view video — 2:08:59)](https://www.youtube.com/watch?v=q7g0ml60LGY)| ### How does it compare to alternative layouts like Dvorak and Colemak? In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the [world record is 360wpm](https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing)). Audiobooks are narrated at around 150wpm ([source from an Audible/iTunes book provider](https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be)). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is [ Mirabai's article on the ergonomic argument for stenography](http://plover.stenoknight.com/2010/05/ergonomic-argument.html). There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. ### If I learn steno, will it make using QWERTY harder? If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the [Plover discord](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), people don't seem to experience this with steno and QWERTY in the same way. This could be because: - Chorded input is very different from typing, so the muscle memory doesn't interfere as much - Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) ### Why isn't steno more popular than QWERTY? There are a number of possible reasons: 1. Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. 1. The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. 1. It takes longer to learn how to write with steno than it does learning how to type. (See [How long does it take to learn?](#how-long-does-it-take-to-learn)) 1. Plover software, and [suitable low cost hardware](https://github.com/openstenoproject/plover/wiki/Supported-Hardware), didn't exist [until recently](https://github.com/openstenoproject/plover/wiki/Open-Steno-Project-Timeline). ### Will stenography be replaced with automatic voice recognition? Mirabai Knight has done [a presentation](https://www.youtube.com/watch?v=XKe1O7ppyqQ) on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic. ### What theory is Plover's default dictionary based on? It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. ### Where can I find other people who use Plover? Check out these [links to the community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community). ### How can I help? The Open Steno Project is run by volunteers. You can help by: - [Contributing code](https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code) - [Reporting issues](https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues) - [Editing this wiki](https://github.com/openstenoproject/plover/wiki) - [Getting involved in the community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community) - [Donating money](https://www.openstenoproject.org/donate/) - Telling people about Open Steno, Plover, and stenography! ## Using Plover ### How can I get started? The [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover) has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. ### What hardware do I need? You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: - [NKRO](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#whats-nkro), so you don't have to [arpeggiate](https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate). - No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [adapt a keyboard](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#adapt-a-keyboard-for-steno-use) to work better for steno. - Lighter keys, so it's less fatiguing. [Find more information in this section of the beginner's guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#connect-a-compatible-keyboard-or-stenography-machine), or in the [keyboards section of the hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keyboards). ### Can I still get by without a professional machine? Yes, Mirabai Knight wrote in [her review of the Georgi](http://plover.stenoknight.com/2019/12/georgi-review.html) that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [hobbyist steno machines](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#commercially-available-hobbyist-machines). This isn't to say that professional machines do not have some benefits: - They do not require a computer, instead they can store text on the machine - The pressure and sensitivity can be adjusted on the fly and per key - The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key [Thomas Baart's post "Exploring Professional Stenotype Machines"](https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/) goes into more of the features that professional machines have. ### Can I use Plover for normal computer use? Yes! Plover can send nearly every keyboard key or combination you like. See the [dictionary format](https://github.com/openstenoproject/plover/wiki/Dictionary-Format#keyboard-shortcuts) for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [pull request](https://github.com/openstenoproject/plover/pull/1278) for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: - [Emily Symbols](https://github.com/EPLHREU/emily-symbols), for typing symbols (including those not in the main Plover dictionary) - [Emily Modifiers](https://github.com/EPLHREU/emily-modifiers), for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) - [Abby's Left Hand Modifiers](https://github.com/4hrue2kd83f/abby-left-hand-modifiers), for typing with modifiers but keeping the right hand free - [Plover Emoji](https://github.com/morinted/plover_emoji), for typing emoji ### Can I use Plover for programming? Yes, and many people do! For example: - The author of [Art of Chording](https://www.artofchording.com/) (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [Coding in Stenography, Quick Demo](https://www.youtube.com/watch?v=RBBiri3CD6w), [Raw unedited steno coding demo](https://www.youtube.com/watch?v=711T2simRyI) - [Paul Fioravanti](https://www.paulfioravanti.com/) recreated DHH's rails 7 demo using steno: [Rails 7: The Steno Demo](https://www.youtube.com/watch?v=q7g0ml60LGY) - Mirabai Knight, who started Plover, has a [demo of her transcribing some of Plover's python source code](https://www.youtube.com/watch?v=jRFKZGWrmrM) To make programming easier with steno: - For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: - Specific dictionaries - [Emily Symbols](https://github.com/EPLHREU/emily-symbols) for writing symbols. - Dictionary collections which include some programming related dictionaries - [stenodict](https://www.openstenoproject.org/stenodict/) a user-submitted collection of dictionaries - [Di's steno dictionaries](https://github.com/didoesdigital/steno-dictionaries), the creator of Typey Type (and whose programming dictionaries can be [practiced on the site](https://didoesdigital.com/typey-type/lessons#tech)) - [Emily's dictionaries](https://github.com/EPLHREU/emily-dictionaries) - [Antistic's dictionaries](https://github.com/antistic/steno-dictionaries) - [Paul's dictionaries](https://github.com/paulfioravanti/steno-dictionaries) - [Josiah's dictionaries](https://github.com/Josiah-tan/plover_dict) - For writing in snake/camel/pascal/etc. case: You can set [typing modes](https://github.com/openstenoproject/plover/wiki/Dictionary-Format#modes), [control capitalisation](https://github.com/openstenoproject/plover/wiki/Dictionary-Format#capitalizing), or type symbols like `_`. There are also various plugins (see a list [here](https://github.com/openstenoproject/plover/discussions/1355)) which lets you do this retroactively. - Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question ["Can I use Plover for normal computer use?"](#can-i-use-plover-for-normal-computer-use) above. ### Can I use Plover for languages other than English? Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [chorded systems](https://github.com/openstenoproject/plover/wiki/Steno-Layouts-&-Supported-Languages) that have been made. If you want to fingerspell with non-English letters, JorWat has a [fingerspelling dictionary for diacritics](https://github.com/JorWat25/dictionaries/blob/main/diacritics.json) (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The #multilingual channel on the [discord server](https://discord.gg/0lQde43a6dGmAMp2) is likely the best place to seek support for other languages. ### How long does it take to learn? You can see the [2021 community survey results](https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics) to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a [youtube video showing his progress over 5 months](https://www.youtube.com/watch?v=28v3cm21uAA), where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. ### What's a brief/stroke/arpeggiating/etc.? You can find a list of commonly used terms in the [glossary](https://github.com/openstenoproject/plover/wiki/Glossary). ### What can't Plover do? For general information on what Plover cannot do, see the [open feature requests](https://github.com/openstenoproject/plover/issues?q=is%3Aissue+is%3Aopen+label%3Afeature-request). If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. - Sticky Metakeys (issue [#72](https://github.com/openstenoproject/plover/issues/72)) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as `Control-C`), but you can't map a stroke to, say, `Control` and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. - Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [Is Plover going to put CAT software companies out of business?](#is-plover-going-to-put-cat-software-companies-out-of-business). ## Comparisons to professional stenography ### Why does steno need amateurs? In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. ### What is Steno Arcade? [![Steno Arcade](http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705)](http://store.steampowered.com/app/449000/) [Steno Arcade](http://store.steampowered.com/app/449000/) is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. #### Is Steno Arcade going to put steno schools out of business? Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. ### How is Plover different from commercial steno programs? Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. ### Is Plover going to put CAT software companies out of business? Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. ### What are some features in Plover not commonly found in most CAT software? 1. Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. 1. Plover runs on Windows, Mac, and Linux. 1. Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. 1. Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. 1. And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. Plover Dictionary Update Demo<br> [![Plover Dictionary Update Demo](https://img.youtube.com/vi/eSU5JlVXT1A/0.jpg)](https://youtu.be/eSU5JlVXT1A "Plover Dictionary Update Demo")<br> [(click to view video — 1:44)](https://youtu.be/eSU5JlVXT1A) ### Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? Yes! See the [stenotype machine section in supported hardware](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#stenotype-machines) for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. ### Can I use my dictionaries from another program? Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. </markdown> ced8edeb0318e3ad123eb0232793003cacc44b1f 86 60 2024-02-05T18:04:23Z Rice 1 wikitext text/x-wiki <markdown> **Table of Contents** - [Plover](#plover) - [What is stenography?](#what-is-stenography) - [How fast can stenographers write?](#how-fast-can-stenographers-write) - [What is Plover?](#what-is-plover) - [Why "Plover"?](#why-plover) - [Who's responsible for Plover's development?](#whos-responsible-for-plovers-development) - [Why does Plover exist?](#why-does-plover-exist) - [How does Stenography compare to typing?](#how-does-stenography-compare-to-typing) - [What does using Plover look like?](#what-does-using-plover-look-like) - [How does it compare to alternative layouts like Dvorak and Colemak?](#how-does-it-compare-to-alternative-layouts-like-dvorak-and-colemak) - [If I learn steno, will it make using QWERTY harder?](#if-i-learn-steno-will-it-make-using-qwerty-harder) - [Why isn't steno more popular than QWERTY?](#why-isnt-steno-more-popular-than-qwerty) - [Will stenography be replaced with automatic voice recognition?](#will-stenography-be-replaced-with-automatic-voice-recognition) - [What theory is Plover's default dictionary based on?](#what-theory-is-plovers-default-dictionary-based-on) - [Where can I find other people who use Plover?](#where-can-i-find-other-people-who-use-plover) - [How can I help?](#how-can-i-help) - [Using Plover](#using-plover) - [How can I get started?](#how-can-i-get-started) - [What hardware do I need?](#what-hardware-do-i-need) - [Can I still get by without a professional machine?](#can-i-still-get-by-without-a-professional-machine) - [Can I use Plover for normal computer use?](#can-i-use-plover-for-normal-computer-use) - [Can I use Plover for programming?](#can-i-use-plover-for-programming) - [Can I use Plover for languages other than English?](#can-i-use-plover-for-languages-other-than-english) - [How long does it take to learn?](#how-long-does-it-take-to-learn) - [What's a brief/stroke/arpeggiating/etc.?](#whats-a-briefstrokearpeggiatingetc) - [What can't Plover do?](#what-cant-plover-do) - [Comparisons to professional stenography](#comparisons-to-professional-stenography) - [Why does steno need amateurs?](#why-does-steno-need-amateurs) - [What is Steno Arcade?](#what-is-steno-arcade) - [Is Steno Arcade going to put steno schools out of business?](#is-steno-arcade-going-to-put-steno-schools-out-of-business) - [How is Plover different from commercial steno programs?](#how-is-plover-different-from-commercial-steno-programs) - [Is Plover going to put CAT software companies out of business?](#is-plover-going-to-put-cat-software-companies-out-of-business) - [What are some features in Plover not commonly found in most CAT software?](#what-are-some-features-in-plover-not-commonly-found-in-most-cat-software) - [Can I use my Luminex/Stentura/Lightspeed/other stenotype machine?](#can-i-use-my-luminexstenturalightspeedother-stenotype-machine) - [Can I use my dictionaries from another program?](#can-i-use-my-dictionaries-from-another-program) ## Plover ### What is stenography? *Stan's Quick and Dirty: How Stenography Works*<br> [![Plover Dictionary Update Demo](https://img.youtube.com/vi/62l64Acfidc/0.jpg)](https://youtu.be/62l64Acfidc "Plover Dictionary Update Demo")<br> [(click to view video — 3:13)](https://youtu.be/62l64Acfidc "Plover Dictionary Update Demo") [Stenography](https://en.wikipedia.org/wiki/Shorthand) is a form of shorthand writing/typing, usually done on a [special machine](https://en.wikipedia.org/wiki/Stenotype) (although with Plover, you can use computer keyboard that has [n-key rollover](https://en.wikipedia.org/wiki/Rollover_(key))). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. ### How fast can stenographers write? | Method | Typical Speed | | ----------|-----------| | Handwriting | 30 WPM | | Average Typist | [40 WPM](https://www.youtube.com/watch?v=P5Ml_y5-KmI&list=PLFCCB3E328121B261) | | Fast Typist | [120 WPM](https://www.youtube.com/watch?v=k71XmfDM1dU) | | Typing World Record | [200 WPM](https://www.youtube.com/watch?v=FgjivmUE9o8) | | Voice Writer | 180 WPM | | Average Speech | 200 WPM | | Amateur Stenographer | [160 WPM](https://www.youtube.com/watch?v=a9hVQ5BT1ls) | | Professional Stenographer | [225 WPM](https://www.youtube.com/watch?v=UNmqwUEEJA4) | | [Steno World Record](https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing)) | 360 WPM | In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [How long does it take to learn?](#how-long-does-it-take-to-learn)) ### What is Plover? Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno. Plover is available on Windows, Mac and Linux. To get started, follow the [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover). ### Why "Plover"? The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [here](http://plover.stenoknight.com/2010/03/why-plover.html). ### Who's responsible for Plover's development? Plover was originally created by [Mirabai Knight](http://www.blogger.com/profile/16494847224950297255) and [Joshua Harlan Lifton](http://launchpad.net/~joshua-harlan-lifton), and is the software arm of [The Open Steno Project](http://openstenoproject.org/), an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin. ### Why does Plover exist? Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [Mirabai Knight](http://StenoKnight.com) to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [Dvorak](http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard) or [Colemak](http://en.wikipedia.org/wiki/Keyboard_layout#Colemak)), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: 1. Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. 1. Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. ### How does Stenography compare to typing? - Typing is (usually) data entry with single fingers Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [Chopin's Fantasie Impromptu](https://www.youtube.com/watch?v=tvm2ZsRv3C8). Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. - Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other. > "When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." > > — [Learn Plover!](https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys) Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [Rachmaninoff's Prelude in G Minor](https://www.youtube.com/watch?v=4QB7ugJnHgs). Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. ### What does using Plover look like? | **QWERTY versus Stenography on Steno Arcade** | **Plover wins the race!** | **Demonstration of Plover with Qwerty Keyboard** | | - | - | - | | [![QWERTY versus Stenography on Steno Arcade](https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg)](https://youtu.be/UtQzTUEuPWo?t=8s)<br>[(click to view video — 3:25)](https://youtu.be/UtQzTUEuPWo?t=8s) | [![Plover Wins the Race!](https://img.youtube.com/vi/jkUyg_uoidY/0.jpg)](https://www.youtube.com/watch?v=jkUyg_uoidY)<br>[(click to view video — 0:30)](https://www.youtube.com/watch?v=jkUyg_uoidY) | [![Demonstration of Plover with Qwerty Keyboard](https://img.youtube.com/vi/JXQQzW99cAI/0.jpg)](https://www.youtube.com/watch?v=JXQQzW99cAI)<br>[(click to view video — 1:05)](https://www.youtube.com/watch?v=JXQQzW99cAI) | | **Realtime Text to Speech with Plover** | **Coding in Stenography, Quick Demo** | **Rails 7: The Steno Demo** | | [![Realtime Text to Speech with Plover](https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg)](https://www.youtube.com/watch?v=K3MYFT6VZk8)<br>[(click to view video — 3:36)](https://www.youtube.com/watch?v=K3MYFT6VZk8) | [![Coding in Stenography, Quick Demo](https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg)](https://www.youtube.com/watch?v=RBBiri3CD6w)<br>[(click to view video — 2:00)](https://www.youtube.com/watch?v=RBBiri3CD6w)| [![Rails 7: The Steno Demo](https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg)](https://www.youtube.com/watch?v=q7g0ml60LGY)<br>[(click to view video — 2:08:59)](https://www.youtube.com/watch?v=q7g0ml60LGY)| ### How does it compare to alternative layouts like Dvorak and Colemak? In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the [world record is 360wpm](https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing)). Audiobooks are narrated at around 150wpm ([source from an Audible/iTunes book provider](https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be)). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is [ Mirabai's article on the ergonomic argument for stenography](http://plover.stenoknight.com/2010/05/ergonomic-argument.html). There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. ### If I learn steno, will it make using QWERTY harder? If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the [Plover discord](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), people don't seem to experience this with steno and QWERTY in the same way. This could be because: - Chorded input is very different from typing, so the muscle memory doesn't interfere as much - Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) ### Why isn't steno more popular than QWERTY? There are a number of possible reasons: 1. Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. 1. The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. 1. It takes longer to learn how to write with steno than it does learning how to type. (See [How long does it take to learn?](#how-long-does-it-take-to-learn)) 1. Plover software, and [suitable low cost hardware](https://github.com/openstenoproject/plover/wiki/Supported-Hardware), didn't exist [until recently](https://github.com/openstenoproject/plover/wiki/Open-Steno-Project-Timeline). ### Will stenography be replaced with automatic voice recognition? Mirabai Knight has done [a presentation](https://www.youtube.com/watch?v=XKe1O7ppyqQ) on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic. ### What theory is Plover's default dictionary based on? It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. ### Where can I find other people who use Plover? Check out these [links to the community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community). ### How can I help? The Open Steno Project is run by volunteers. You can help by: - [Contributing code](https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code) - [Reporting issues](https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues) - [Editing this wiki](https://github.com/openstenoproject/plover/wiki) - [Getting involved in the community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community) - [Donating money](https://www.openstenoproject.org/donate/) - Telling people about Open Steno, Plover, and stenography! ## Using Plover ### How can I get started? The [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover) has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. ### What hardware do I need? You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: - [NKRO](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#whats-nkro), so you don't have to [arpeggiate](https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate). - No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [adapt a keyboard](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#adapt-a-keyboard-for-steno-use) to work better for steno. - Lighter keys, so it's less fatiguing. [Find more information in this section of the beginner's guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#connect-a-compatible-keyboard-or-stenography-machine), or in the [keyboards section of the hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keyboards). ### Can I still get by without a professional machine? Yes, Mirabai Knight wrote in [her review of the Georgi](http://plover.stenoknight.com/2019/12/georgi-review.html) that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [hobbyist steno machines](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#commercially-available-hobbyist-machines). This isn't to say that professional machines do not have some benefits: - They do not require a computer, instead they can store text on the machine - The pressure and sensitivity can be adjusted on the fly and per key - The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key [Thomas Baart's post "Exploring Professional Stenotype Machines"](https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/) goes into more of the features that professional machines have. ### Can I use Plover for normal computer use? Yes! Plover can send nearly every keyboard key or combination you like. See the [dictionary format](https://github.com/openstenoproject/plover/wiki/Dictionary-Format#keyboard-shortcuts) for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [pull request](https://github.com/openstenoproject/plover/pull/1278) for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: - [Emily Symbols](https://github.com/EPLHREU/emily-symbols), for typing symbols (including those not in the main Plover dictionary) - [Emily Modifiers](https://github.com/EPLHREU/emily-modifiers), for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) - [Abby's Left Hand Modifiers](https://github.com/4hrue2kd83f/abby-left-hand-modifiers), for typing with modifiers but keeping the right hand free - [Plover Emoji](https://github.com/morinted/plover_emoji), for typing emoji ### Can I use Plover for programming? Yes, and many people do! For example: - The author of [Art of Chording](https://www.artofchording.com/) (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [Coding in Stenography, Quick Demo](https://www.youtube.com/watch?v=RBBiri3CD6w), [Raw unedited steno coding demo](https://www.youtube.com/watch?v=711T2simRyI) - [Paul Fioravanti](https://www.paulfioravanti.com/) recreated DHH's rails 7 demo using steno: [Rails 7: The Steno Demo](https://www.youtube.com/watch?v=q7g0ml60LGY) - Mirabai Knight, who started Plover, has a [demo of her transcribing some of Plover's python source code](https://www.youtube.com/watch?v=jRFKZGWrmrM) To make programming easier with steno: - For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: - Specific dictionaries - [Emily Symbols](https://github.com/EPLHREU/emily-symbols) for writing symbols. - Dictionary collections which include some programming related dictionaries - [stenodict](https://www.openstenoproject.org/stenodict/) a user-submitted collection of dictionaries - [Di's steno dictionaries](https://github.com/didoesdigital/steno-dictionaries), the creator of Typey Type (and whose programming dictionaries can be [practiced on the site](https://didoesdigital.com/typey-type/lessons#tech)) - [Emily's dictionaries](https://github.com/EPLHREU/emily-dictionaries) - [Antistic's dictionaries](https://github.com/antistic/steno-dictionaries) - [Paul's dictionaries](https://github.com/paulfioravanti/steno-dictionaries) - [Josiah's dictionaries](https://github.com/Josiah-tan/plover_dict) - For writing in snake/camel/pascal/etc. case: You can set [typing modes](https://github.com/openstenoproject/plover/wiki/Dictionary-Format#modes), [control capitalisation](https://github.com/openstenoproject/plover/wiki/Dictionary-Format#capitalizing), or type symbols like `_`. There are also various plugins (see a list [here](https://github.com/openstenoproject/plover/discussions/1355)) which lets you do this retroactively. - Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question ["Can I use Plover for normal computer use?"](#can-i-use-plover-for-normal-computer-use) above. ### Can I use Plover for languages other than English? Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [chorded systems](https://github.com/openstenoproject/plover/wiki/Steno-Layouts-&-Supported-Languages) that have been made. If you want to fingerspell with non-English letters, JorWat has a [fingerspelling dictionary for diacritics](https://github.com/JorWat25/dictionaries/blob/main/diacritics.json) (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The #multilingual channel on the [discord server](https://discord.gg/0lQde43a6dGmAMp2) is likely the best place to seek support for other languages. ### How long does it take to learn? You can see the [2021 community survey results](https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics) to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a [youtube video showing his progress over 5 months](https://www.youtube.com/watch?v=28v3cm21uAA), where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. ### What's a brief/stroke/arpeggiating/etc.? You can find a list of commonly used terms in the [glossary](https://github.com/openstenoproject/plover/wiki/Glossary). ### What can't Plover do? For general information on what Plover cannot do, see the [open feature requests](https://github.com/openstenoproject/plover/issues?q=is%3Aissue+is%3Aopen+label%3Afeature-request). If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. - Sticky Metakeys (issue [#72](https://github.com/openstenoproject/plover/issues/72)) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as `Control-C`), but you can't map a stroke to, say, `Control` and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. - Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [Is Plover going to put CAT software companies out of business?](#is-plover-going-to-put-cat-software-companies-out-of-business). ## Comparisons to professional stenography ### Why does steno need amateurs? In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. ### What is Steno Arcade? [![Steno Arcade](http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705)](http://store.steampowered.com/app/449000/) [Steno Arcade](http://store.steampowered.com/app/449000/) is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. #### Is Steno Arcade going to put steno schools out of business? Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. ### How is Plover different from commercial steno programs? Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. ### Is Plover going to put CAT software companies out of business? Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. ### What are some features in Plover not commonly found in most CAT software? 1. Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. 1. Plover runs on Windows, Mac, and Linux. 1. Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. 1. Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. 1. And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. Plover Dictionary Update Demo<br> [![Plover Dictionary Update Demo](https://img.youtube.com/vi/eSU5JlVXT1A/0.jpg)](https://youtu.be/eSU5JlVXT1A "Plover Dictionary Update Demo")<br> [(click to view video — 1:44)](https://youtu.be/eSU5JlVXT1A) ### Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? Yes! See the [stenotype machine section in supported hardware](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#stenotype-machines) for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. ### Can I use my dictionaries from another program? Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. </markdown> [[Category:Stenography]] 6476d5e8d43963b1d883e084af475f2c120eb069 Glossary 0 16 61 2024-02-05T16:03:22Z Rice 1 Created page with "<markdown> This glossary will help you with terms that you may come across in the steno community. **Table of Contents** - [Arpeggiate](#arpeggiate) - [Brief](#brief) - [Chord](#chord) - [Conflict](#conflict) - [Dragging](#dragging) - [JSON](#json) - [Mandatory](#mandatory) - [Misstroke](#misstroke) - [Outline](#outline) - [Philly Shift](#philly-shift) - [RTF/CRE](#rtfcre) - [Shadowing](#shadowing) - [Stacking](#stacking) - [Steno Dictionary](#steno-dictionary) - [Sten..." wikitext text/x-wiki <markdown> This glossary will help you with terms that you may come across in the steno community. **Table of Contents** - [Arpeggiate](#arpeggiate) - [Brief](#brief) - [Chord](#chord) - [Conflict](#conflict) - [Dragging](#dragging) - [JSON](#json) - [Mandatory](#mandatory) - [Misstroke](#misstroke) - [Outline](#outline) - [Philly Shift](#philly-shift) - [RTF/CRE](#rtfcre) - [Shadowing](#shadowing) - [Stacking](#stacking) - [Steno Dictionary](#steno-dictionary) - [Steno Order](#steno-order) - [Stroke](#stroke) - [Steno Theory](#steno-theory) - [Suffix folding or tucking](#suffix-folding-or-tucking) - [Untranslate](#untranslate) - [Word Boundary](#word-boundary) - [Write Out](#write-out) - [Writing](#writing) ### Arpeggiate A Plover feature enabling a standard keyboard to [stroke](#stroke) a [chord](#chord) by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is `<space>`. Press `<space>` to begin arpeggiating, then press the keys which make up the chord, and, finally, press `<space>` to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via `Configure > Machine` (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" width="40%"> The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Cheat Sheets|Learning-Stenography#cheat-sheets]] for pictures of how keyboard keys correspond to steno keys. ### Brief Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: `FROM/TAOIM/TO/TAOIM` (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: `FRIMT` (reads: "frimt" and takes only one stroke) ### Chord A group of keys representing a certain sound. For example, `TPH-` is a chord that represents the initial N sound. ### Conflict 1. traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. 2. informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. ### Dragging Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write `-F` but then drag your finger to the left, you might hit `*F` instead. ### JSON JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as `"SKP": "and"`. ### Mandatory A typically arbitrary brief which is the only correct way to write the word. For example, `-T` is the only outline for _the_ in the default dictionary, with no written out outline. ### Misstroke A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke `TKPWAOD` (meaning `GAOD`) which translates to `good`. Sometimes the stenographer may miss a key, so they could have a misstroke entry `TKPAOD` which would also translate to `good`. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. ### Outline One or more strokes that translate to an affix, word, or phrase, such as `STPHOG/TPER`, one possible outline for _stenographer_. ### Philly Shift Shifting the right hand one column to the right, typically in order to write the normally not possible `-TZ` and `-SD` chords. ### RTF/CRE Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. ### Shadowing Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. ### Stacking When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write `is okay` with `S-/OBG` but end up with `SOBG → sock` because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, `"T-S": "{^s it}"`. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. ### Steno Dictionary Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[steno theory|Glossary#steno-theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. ### Steno Order The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by `STKPWHRAO*EUFRPBLGTSDZ`. ### Stroke A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the outline `STPHOG/TPER` for _stenographer_ consists of two strokes, `STPHOG` and `TPER`. ### Steno Theory A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally. ### Suffix folding or tucking In some [steno theories](#steno-theory), when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as `SAOE/-G`, one may write `SAOEG` in one stroke. Sometimes this will break steno order. For example, when `EPBD/-G` is turned into `EPBGD`. This is known as folding in or tucking. Some commonly tucked one-key suffixes are `"-S": "{^s}"`, `"-D": "{^ed}"`, `"-G": "{^ing}"` and `"-R": "{^er}"`. A one-key prefix that's often folded in Plover's default theory as well is `"K-": "{con^}"` (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are `"-PLT": "{^ment}"`, `"-GS": "{^tion}"` and `"-BGS": "{^ction}"`. ### Untranslate Also known as an untran. When writing in stenography, your strokes map to translations. E.g. `KAT → cat`. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have `KAT`, Plover will simply output `KAT`. ### Word Boundary The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary **error** is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; **`TPH`**/`HAOER` vs "insect"; **`EUPB`**/`SEBGT` * "on top of"; **`OPB`**/`TOP`/`-F` vs "onto"; **`AUPN`**/`TO` * "it is a live (wire)"; `T`/`S`/**`AEU`**/`HREUF` vs "it is alive"; `T`/`S`/**`A`**/`HREUF` ### Write Out The opposite of a [brief](#brief) is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out `O/PEUPB/KWROPB` instead of using the brief `P-PB` for the word "opinion". ### Writing Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. </markdown> 9a00988461fb3c3506fa506af7c8390e4d900872 88 61 2024-02-05T18:05:51Z Rice 1 wikitext text/x-wiki <markdown> This glossary will help you with terms that you may come across in the steno community. **Table of Contents** - [Arpeggiate](#arpeggiate) - [Brief](#brief) - [Chord](#chord) - [Conflict](#conflict) - [Dragging](#dragging) - [JSON](#json) - [Mandatory](#mandatory) - [Misstroke](#misstroke) - [Outline](#outline) - [Philly Shift](#philly-shift) - [RTF/CRE](#rtfcre) - [Shadowing](#shadowing) - [Stacking](#stacking) - [Steno Dictionary](#steno-dictionary) - [Steno Order](#steno-order) - [Stroke](#stroke) - [Steno Theory](#steno-theory) - [Suffix folding or tucking](#suffix-folding-or-tucking) - [Untranslate](#untranslate) - [Word Boundary](#word-boundary) - [Write Out](#write-out) - [Writing](#writing) ### Arpeggiate A Plover feature enabling a standard keyboard to [stroke](#stroke) a [chord](#chord) by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is `<space>`. Press `<space>` to begin arpeggiating, then press the keys which make up the chord, and, finally, press `<space>` to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via `Configure > Machine` (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" width="40%"> The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Cheat Sheets|Learning-Stenography#cheat-sheets]] for pictures of how keyboard keys correspond to steno keys. ### Brief Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: `FROM/TAOIM/TO/TAOIM` (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: `FRIMT` (reads: "frimt" and takes only one stroke) ### Chord A group of keys representing a certain sound. For example, `TPH-` is a chord that represents the initial N sound. ### Conflict 1. traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. 2. informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. ### Dragging Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write `-F` but then drag your finger to the left, you might hit `*F` instead. ### JSON JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as `"SKP": "and"`. ### Mandatory A typically arbitrary brief which is the only correct way to write the word. For example, `-T` is the only outline for _the_ in the default dictionary, with no written out outline. ### Misstroke A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke `TKPWAOD` (meaning `GAOD`) which translates to `good`. Sometimes the stenographer may miss a key, so they could have a misstroke entry `TKPAOD` which would also translate to `good`. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. ### Outline One or more strokes that translate to an affix, word, or phrase, such as `STPHOG/TPER`, one possible outline for _stenographer_. ### Philly Shift Shifting the right hand one column to the right, typically in order to write the normally not possible `-TZ` and `-SD` chords. ### RTF/CRE Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. ### Shadowing Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. ### Stacking When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write `is okay` with `S-/OBG` but end up with `SOBG → sock` because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, `"T-S": "{^s it}"`. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. ### Steno Dictionary Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[steno theory|Glossary#steno-theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. ### Steno Order The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by `STKPWHRAO*EUFRPBLGTSDZ`. ### Stroke A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the outline `STPHOG/TPER` for _stenographer_ consists of two strokes, `STPHOG` and `TPER`. ### Steno Theory A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally. ### Suffix folding or tucking In some [steno theories](#steno-theory), when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as `SAOE/-G`, one may write `SAOEG` in one stroke. Sometimes this will break steno order. For example, when `EPBD/-G` is turned into `EPBGD`. This is known as folding in or tucking. Some commonly tucked one-key suffixes are `"-S": "{^s}"`, `"-D": "{^ed}"`, `"-G": "{^ing}"` and `"-R": "{^er}"`. A one-key prefix that's often folded in Plover's default theory as well is `"K-": "{con^}"` (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are `"-PLT": "{^ment}"`, `"-GS": "{^tion}"` and `"-BGS": "{^ction}"`. ### Untranslate Also known as an untran. When writing in stenography, your strokes map to translations. E.g. `KAT → cat`. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have `KAT`, Plover will simply output `KAT`. ### Word Boundary The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary **error** is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; **`TPH`**/`HAOER` vs "insect"; **`EUPB`**/`SEBGT` * "on top of"; **`OPB`**/`TOP`/`-F` vs "onto"; **`AUPN`**/`TO` * "it is a live (wire)"; `T`/`S`/**`AEU`**/`HREUF` vs "it is alive"; `T`/`S`/**`A`**/`HREUF` ### Write Out The opposite of a [brief](#brief) is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out `O/PEUPB/KWROPB` instead of using the brief `P-PB` for the word "opinion". ### Writing Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. </markdown> [[Category:Stenography]] 32199d4282cda43a37f9532bbe0ae4634a524214 Learning stenography 0 17 62 2024-02-05T16:03:48Z Rice 1 Created page with "<markdown> - [Suggested Learning Route](#suggested-learning-route) - [Textbooks](#textbooks) - [Glossary](#glossary) - [Tools](#tools) - [Plugins](#plugins) - [Practice writing using stenography](#practice-writing-using-stenography) - [Practice material and tools made for stenography](#practice-material-and-tools-made-for-stenography) - [Dictation](#dictation) - [Volunteer Projects Needing Transcription](#volunteer-projects-needing-transcription) - [Other Typing..." wikitext text/x-wiki <markdown> - [Suggested Learning Route](#suggested-learning-route) - [Textbooks](#textbooks) - [Glossary](#glossary) - [Tools](#tools) - [Plugins](#plugins) - [Practice writing using stenography](#practice-writing-using-stenography) - [Practice material and tools made for stenography](#practice-material-and-tools-made-for-stenography) - [Dictation](#dictation) - [Volunteer Projects Needing Transcription](#volunteer-projects-needing-transcription) - [Other Typing Sites](#other-typing-sites) - [Flashcards](#flashcards) - [Cheat sheets](#cheat-sheets) ## Suggested Learning Route > :warning: This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to. | Learning Level | Suggestion | | - | - | | Absolute Beginner | **Start reading a [textbook](#textbooks).** [The Art of Chording](https://www.artofchording.com/) seems to be more popular, but [Learn Plover!](https://www.openstenoproject.org/learn-plover/) is more complete (covering punctuation and numbers as well).<br><br>**Join the [discord](https://discord.com/invite/0lQde43a6dGmAMp2)**. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.<br><br>**Read the [[Glossary]]**. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. | | Learning the Keyboard | [**Learn the Steno Keyboard on Steno Jig**](https://joshuagrams.github.io/steno-jig/learn-keyboard.html). It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [turn off the dictionaries](https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html) to use this. | | Learning the keyboard (QWERTY) | **Download one of the keyboard [cheat sheets](#cheat-sheets)**. | | Beginner vocabulary |**Practice writing with a [steno-focused tool](#practice-writing-using-stenography)**. Popular tools are [Typey Type](https://didoesdigital.com/typey-type/), [Steno Jig](https://joshuagrams.github.io/steno-jig/) and [Practice Plover](https://practiceplover.com/). <br><br>**Start using [flashcards](../wiki/Using-Anki-for-Learning-Stenography)**. Some people like using flashcards to practice vocabulary and identify problem words.<br><br>**Learn to use [tools](#tools) and [plugins](#plugins)**. These can help you discover how to write new words and briefs that may not come up in early lessons.<br><br>**Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]**. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. | | Intermediate vocabulary | **Practice on [other typing sites](#other-typing-sites)**. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.<br><br>**Start adding your own entries to the dictionary**. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. | | ~30wpm | **Start using stenography in your day-to-day writing.** Check out [this FAQ answer](https://github.com/openstenoproject/plover/wiki/Frequently-Asked-Questions#can-i-use-plover-for-normal-computer-use) for tips. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). | | ~50wpm | **Practice with [Steno Arcade](https://store.steampowered.com/app/449000/Steno_Arcade/), or other slow [dictation](#dictation)**. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to add your [own songs](https://timothyaveni.com/wavelyric/) which you may find easier). | | ~100wpm | **Consider investing in steno [hardware](https://github.com/openstenoproject/plover/wiki/Supported-Hardware)**. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. | ## Textbooks These sites aim to teach you steno theory, from the layout to the terminology to the strokes. - [The Art of Chording](https://www.artofchording.com/) _The Art of Chording_ is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. - [Learn Plover!](https://www.openstenoproject.org/learn-plover/) ([EPUB](https://isidore.co/calibre/get/EPUB/7784), [PDF](https://isidore.co/calibre/get/PDF/7784)) _Learn Plover!_ is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [Steno Jig](https://joshuagrams.github.io/steno-jig/learn-plover.html) and [Typey Type](https://didoesdigital.com/typey-type/lessons). - [Lapwing for Beginners](https://github.com/aerickt/lapwing-for-beginners/wiki) _Lapwing for Beginners_ is an online guide for Lapwing theory. It offers exercises to be completed with [Typey Type](https://didoesdigital.com/typey-type/lessons) and covers a wide range of content. However, do note that this theory is not default in the Plover app. Although based off of Plover theory, Lapwing offers more consistency and relies less heavily on memorization. ## Glossary For a glossary of terms used in stenography and plover, see the [[Glossary]] page. ## Tools Plover comes with a lot of [[built-in tools]] which are useful for learning, such as: - Lookup. Write words here to see how you can write them. - Stroke Suggestions. Suggests alternative ways of writing the words you write. - Paper Tape. Shows which keys Plover thinks you're pressing. ## Plugins Check out [[Plugins]] for how to install plugins. Check out the [awesome-plover page list of plugins](https://github.com/openstenoproject/awesome-plover#plugins) for a longer list of awesome plugins. Here are 3 community favourites. - [Spectra Lexer](https://github.com/fourshade/spectra_lexer) This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [web version](https://spectra.sammdot.ca/) and a bot in the [discord server](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), though these only use the default Plover dictionaries and not any additional user dictionaries you may have. - [Plover-clippy](https://github.com/tckmn/plover_clippy) or [Plover-clippy-2](https://github.com/Josiah-tan/plover_clippy_2) Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into `clippy_2.org` in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. <img width="500" alt="Screenshot of Plover's menu item, Open config folder, under File" src="https://user-images.githubusercontent.com/2476974/153804408-3e4be300-1139-4af4-b3bf-8414752fa7de.png"> - [Plover Word Tray](https://github.com/Kaoffie/plover_word_tray) Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [lookup window](https://github.com/openstenoproject/plover/wiki/Built-in-tools#lookup-tool) and [suggestions window](https://github.com/openstenoproject/plover/wiki/Built-in-tools#stroke-suggestions) in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. ## Practice writing using stenography ### Practice material and tools made for stenography - [Typey Type for Stenographers](https://didoesdigital.com/typey-type/) Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [Learn Plover!](https://www.openstenoproject.org/learn-plover/) book and lets you [upload your own practice material](https://didoesdigital.com/typey-type/lessons/custom/setup). It also has [dictionaries](https://didoesdigital.com/typey-type/dictionaries), [flashcards](https://didoesdigital.com/typey-type/flashcards), [recommendations](https://didoesdigital.com/typey-type/progress) on how much of which lesson to do next, a [break timer](https://didoesdigital.com/typey-type/break), a [lookup tool](https://didoesdigital.com/typey-type/lookup), and a [diagram generator](https://didoesdigital.com/typey-type/writer). Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) - [Steno Jig](https://joshuagrams.github.io/steno-jig/) Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [Learn Plover! drills](https://joshuagrams.github.io/steno-jig/learn-plover.html) with stroke hints and lookahead display. - [Steno Grade](https://biffbish.github.io/steno-grade/) Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. - [Practice Plover](https://practiceplover.com/) Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. - [Qwerty Steno](http://qwertysteno.com/Home/) Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. - [The Steno Grind](https://noahrayroberts.com/apps/the-steno-grind/) The Steno Grind provides interactive drills for any combination of exercises from _The Art of Chording_. - [Plover Dojo](http://ploverdojo.appspot.com/) (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. - [Top 100 Words in Plover's Dictionary](https://github.com/openstenoproject/plover/wiki/Top-100-English-Words-in-Plover's-Dictionary) A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. - [StenoCycle](https://www.stenoshortcake.com/) Driving game - early prototype, but does let you drill your own words and phrases. ### Dictation If you want to eventually caption speakers, you will need to be able to take dictation. - [Steno Arcade](http://store.steampowered.com/app/449000/) Steno Arcade is a project funded by the Open Steno Project, developed by [For All To Play](http://www.foralltoplay.com/). It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [wavelyric](http://timothyaveni.com/wavelyric/). The easiest song requires a speed of about 50 WPM. - Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. - Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. - [YouTube](https://youtube.com) You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. - [Platinum steno](https://www.youtube.com/c/PlatinumSteno/playlists) Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [one on doing the theory courses after learning Plover theory](https://www.paulfioravanti.com/blog/going-platinum/), and [one more general post on using Plover with Q&A style dictation](https://www.paulfioravanti.com/blog/plover-for-the-record/). - [Stenonymous's Resource Page](https://stenonymous.com/2017/08/12/resource-page/) This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. - [StenoTube](http://stenotube.com/category/practice-dictation/) A selection of dictations, though mostly at higher speeds. - [Pitman London](http://www.pitmanlondon.co.uk/shorthandspeed/) Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. - [IPS](https://the-ips.org.uk/examinations/dictation-practice/) Dictations ranging from 100 WPM to 280 WPM. - [Court Reporting Help](http://courtreportinghelp.com/) CRH has some free dictation posts. Especially useful is the [Magic Drill](https://web.archive.org/web/20181107020646/http://courtreportinghelp.com:80/2016/01/02/magic-drills-free-audio-speed-drills/), for beginners and experts alike. - [englishlearning.webgarden.es](http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts) This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. - [www.stenolife.com](https://www.stenolife.com/index.php/site/dictation/index) Many short pieces are available across a wide range of speeds. Making an account is required. - [www.ev360ultimate.com](http://www.ev360ultimate.com/ev360u/moodle/login/index.php) A repository with longer pieces and guided practice sessions. Making an account is required. - Make your own: Christopher Day has an article on [How to Create Timed Dictation](https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/) and Josh Grams has a [tool for adding timing marks](http://joshgrams.com/2022/01/17/drillmaker.html) (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). ### Volunteer Projects Needing Transcription - [Library of Congress By the People Project](https://crowd.loc.gov/) Volunteer project transcribing historical texts. ### Other Typing Sites Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). - [TypiNation](https://www.typination.com/) Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. - [keyma.sh](https://keyma.sh) Multiplayer typing website with a stenography world and public racing rooms. - [monkeytype](https://monkeytype.com/) *Some steno users have reported having their scores not saved as they were detected as bot-like* Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [Steno Jig](https://joshuagrams.github.io/steno-jig/form.html) as well). You may want to change some settings for steno input to work well: | setting name | setting | notes | | --------------- | ------- | - | | freedom mode | on | Allows you to delete any word, even if typed wrong | | strict space | on | Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke | | stop on error | off | Allows you to write incorrect characters | | confidence mode | off | Allow you to backspace | | quick end | off | If on, means that the test will end as soon as the last word is is typed, even if incorrect | | indicate typos | below/replace | Show typos | - [ZType](https://zty.pe/) Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. - [TypeRacer](http://typeracer.com) *Now bans steno users who show up in leaderboards, a sudden flip after years of steno users being allowed on the site* Online realtime typing competition. Use the [steno universe](https://play.typeracer.com/?universe=steno) to avoid getting banned (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [this user script](https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit) to get around the limit ([instructions](https://greasyfork.org/en)). - [10 Fast Fingers](https://10fastfingers.com/typing-test/english) *Bans steno users who break 100WPM* Short test of most common words. ## Flashcards You can use flashcards to help you memorise briefs, theory rules, phrases and more. See [Using Anki for Learning Stenography](https://github.com/openstenoproject/plover/wiki/Using-Anki-for-Learning-Stenography) for more details on how to get set up and community materials. ## Cheat sheets Quick image and text references. - QWERTY to steno layout - [Steno board next to the QWERTY layout](https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png) - Steno keys on top of a QWERTY keyboard - [Full keyboard](http://i.imgur.com/qIh1iJ0.png) - [Faded QWERTY](https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png) - [Faded QWERTY, with finger positions](https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png) - [Learn Plover! Cheat sheet](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet) - [Chart with all the standard sounds in Plover on the steno board](https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit) - [Which fingers to use for each key](https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit) - [Steno order](https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit) - Quick text references for: - [Fingerspelling](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling) - [Briefs](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs) - [Prefix/Suffix strokes](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes) - [Non-letters](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters) - [Numbers](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers) - [Steno Explained](https://steno.sammdot.ca/explainers) - [Steno Terminology](https://steno.sammdot.ca/steno-terminology.png) - [Plover Theory Basics](https://steno.sammdot.ca/plover-basics.png) - [Numbers](https://steno.sammdot.ca/plover-numbers.png) - [Fingerspelling](https://steno.sammdot.ca/plover-fingerspelling.png) - charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [Steno Explained](https://steno.sammdot.ca/explainers) </markdown> 2180ca97c7c12153d24a3d418c4117e4fa70d6d9 89 62 2024-02-05T18:06:07Z Rice 1 wikitext text/x-wiki <markdown> - [Suggested Learning Route](#suggested-learning-route) - [Textbooks](#textbooks) - [Glossary](#glossary) - [Tools](#tools) - [Plugins](#plugins) - [Practice writing using stenography](#practice-writing-using-stenography) - [Practice material and tools made for stenography](#practice-material-and-tools-made-for-stenography) - [Dictation](#dictation) - [Volunteer Projects Needing Transcription](#volunteer-projects-needing-transcription) - [Other Typing Sites](#other-typing-sites) - [Flashcards](#flashcards) - [Cheat sheets](#cheat-sheets) ## Suggested Learning Route > :warning: This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to. | Learning Level | Suggestion | | - | - | | Absolute Beginner | **Start reading a [textbook](#textbooks).** [The Art of Chording](https://www.artofchording.com/) seems to be more popular, but [Learn Plover!](https://www.openstenoproject.org/learn-plover/) is more complete (covering punctuation and numbers as well).<br><br>**Join the [discord](https://discord.com/invite/0lQde43a6dGmAMp2)**. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.<br><br>**Read the [[Glossary]]**. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. | | Learning the Keyboard | [**Learn the Steno Keyboard on Steno Jig**](https://joshuagrams.github.io/steno-jig/learn-keyboard.html). It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [turn off the dictionaries](https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html) to use this. | | Learning the keyboard (QWERTY) | **Download one of the keyboard [cheat sheets](#cheat-sheets)**. | | Beginner vocabulary |**Practice writing with a [steno-focused tool](#practice-writing-using-stenography)**. Popular tools are [Typey Type](https://didoesdigital.com/typey-type/), [Steno Jig](https://joshuagrams.github.io/steno-jig/) and [Practice Plover](https://practiceplover.com/). <br><br>**Start using [flashcards](../wiki/Using-Anki-for-Learning-Stenography)**. Some people like using flashcards to practice vocabulary and identify problem words.<br><br>**Learn to use [tools](#tools) and [plugins](#plugins)**. These can help you discover how to write new words and briefs that may not come up in early lessons.<br><br>**Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]**. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. | | Intermediate vocabulary | **Practice on [other typing sites](#other-typing-sites)**. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.<br><br>**Start adding your own entries to the dictionary**. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. | | ~30wpm | **Start using stenography in your day-to-day writing.** Check out [this FAQ answer](https://github.com/openstenoproject/plover/wiki/Frequently-Asked-Questions#can-i-use-plover-for-normal-computer-use) for tips. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). | | ~50wpm | **Practice with [Steno Arcade](https://store.steampowered.com/app/449000/Steno_Arcade/), or other slow [dictation](#dictation)**. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to add your [own songs](https://timothyaveni.com/wavelyric/) which you may find easier). | | ~100wpm | **Consider investing in steno [hardware](https://github.com/openstenoproject/plover/wiki/Supported-Hardware)**. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. | ## Textbooks These sites aim to teach you steno theory, from the layout to the terminology to the strokes. - [The Art of Chording](https://www.artofchording.com/) _The Art of Chording_ is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. - [Learn Plover!](https://www.openstenoproject.org/learn-plover/) ([EPUB](https://isidore.co/calibre/get/EPUB/7784), [PDF](https://isidore.co/calibre/get/PDF/7784)) _Learn Plover!_ is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [Steno Jig](https://joshuagrams.github.io/steno-jig/learn-plover.html) and [Typey Type](https://didoesdigital.com/typey-type/lessons). - [Lapwing for Beginners](https://github.com/aerickt/lapwing-for-beginners/wiki) _Lapwing for Beginners_ is an online guide for Lapwing theory. It offers exercises to be completed with [Typey Type](https://didoesdigital.com/typey-type/lessons) and covers a wide range of content. However, do note that this theory is not default in the Plover app. Although based off of Plover theory, Lapwing offers more consistency and relies less heavily on memorization. ## Glossary For a glossary of terms used in stenography and plover, see the [[Glossary]] page. ## Tools Plover comes with a lot of [[built-in tools]] which are useful for learning, such as: - Lookup. Write words here to see how you can write them. - Stroke Suggestions. Suggests alternative ways of writing the words you write. - Paper Tape. Shows which keys Plover thinks you're pressing. ## Plugins Check out [[Plugins]] for how to install plugins. Check out the [awesome-plover page list of plugins](https://github.com/openstenoproject/awesome-plover#plugins) for a longer list of awesome plugins. Here are 3 community favourites. - [Spectra Lexer](https://github.com/fourshade/spectra_lexer) This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [web version](https://spectra.sammdot.ca/) and a bot in the [discord server](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), though these only use the default Plover dictionaries and not any additional user dictionaries you may have. - [Plover-clippy](https://github.com/tckmn/plover_clippy) or [Plover-clippy-2](https://github.com/Josiah-tan/plover_clippy_2) Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into `clippy_2.org` in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. <img width="500" alt="Screenshot of Plover's menu item, Open config folder, under File" src="https://user-images.githubusercontent.com/2476974/153804408-3e4be300-1139-4af4-b3bf-8414752fa7de.png"> - [Plover Word Tray](https://github.com/Kaoffie/plover_word_tray) Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [lookup window](https://github.com/openstenoproject/plover/wiki/Built-in-tools#lookup-tool) and [suggestions window](https://github.com/openstenoproject/plover/wiki/Built-in-tools#stroke-suggestions) in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. ## Practice writing using stenography ### Practice material and tools made for stenography - [Typey Type for Stenographers](https://didoesdigital.com/typey-type/) Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [Learn Plover!](https://www.openstenoproject.org/learn-plover/) book and lets you [upload your own practice material](https://didoesdigital.com/typey-type/lessons/custom/setup). It also has [dictionaries](https://didoesdigital.com/typey-type/dictionaries), [flashcards](https://didoesdigital.com/typey-type/flashcards), [recommendations](https://didoesdigital.com/typey-type/progress) on how much of which lesson to do next, a [break timer](https://didoesdigital.com/typey-type/break), a [lookup tool](https://didoesdigital.com/typey-type/lookup), and a [diagram generator](https://didoesdigital.com/typey-type/writer). Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) - [Steno Jig](https://joshuagrams.github.io/steno-jig/) Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [Learn Plover! drills](https://joshuagrams.github.io/steno-jig/learn-plover.html) with stroke hints and lookahead display. - [Steno Grade](https://biffbish.github.io/steno-grade/) Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. - [Practice Plover](https://practiceplover.com/) Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. - [Qwerty Steno](http://qwertysteno.com/Home/) Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. - [The Steno Grind](https://noahrayroberts.com/apps/the-steno-grind/) The Steno Grind provides interactive drills for any combination of exercises from _The Art of Chording_. - [Plover Dojo](http://ploverdojo.appspot.com/) (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. - [Top 100 Words in Plover's Dictionary](https://github.com/openstenoproject/plover/wiki/Top-100-English-Words-in-Plover's-Dictionary) A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. - [StenoCycle](https://www.stenoshortcake.com/) Driving game - early prototype, but does let you drill your own words and phrases. ### Dictation If you want to eventually caption speakers, you will need to be able to take dictation. - [Steno Arcade](http://store.steampowered.com/app/449000/) Steno Arcade is a project funded by the Open Steno Project, developed by [For All To Play](http://www.foralltoplay.com/). It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [wavelyric](http://timothyaveni.com/wavelyric/). The easiest song requires a speed of about 50 WPM. - Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. - Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. - [YouTube](https://youtube.com) You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. - [Platinum steno](https://www.youtube.com/c/PlatinumSteno/playlists) Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [one on doing the theory courses after learning Plover theory](https://www.paulfioravanti.com/blog/going-platinum/), and [one more general post on using Plover with Q&A style dictation](https://www.paulfioravanti.com/blog/plover-for-the-record/). - [Stenonymous's Resource Page](https://stenonymous.com/2017/08/12/resource-page/) This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. - [StenoTube](http://stenotube.com/category/practice-dictation/) A selection of dictations, though mostly at higher speeds. - [Pitman London](http://www.pitmanlondon.co.uk/shorthandspeed/) Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. - [IPS](https://the-ips.org.uk/examinations/dictation-practice/) Dictations ranging from 100 WPM to 280 WPM. - [Court Reporting Help](http://courtreportinghelp.com/) CRH has some free dictation posts. Especially useful is the [Magic Drill](https://web.archive.org/web/20181107020646/http://courtreportinghelp.com:80/2016/01/02/magic-drills-free-audio-speed-drills/), for beginners and experts alike. - [englishlearning.webgarden.es](http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts) This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. - [www.stenolife.com](https://www.stenolife.com/index.php/site/dictation/index) Many short pieces are available across a wide range of speeds. Making an account is required. - [www.ev360ultimate.com](http://www.ev360ultimate.com/ev360u/moodle/login/index.php) A repository with longer pieces and guided practice sessions. Making an account is required. - Make your own: Christopher Day has an article on [How to Create Timed Dictation](https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/) and Josh Grams has a [tool for adding timing marks](http://joshgrams.com/2022/01/17/drillmaker.html) (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). ### Volunteer Projects Needing Transcription - [Library of Congress By the People Project](https://crowd.loc.gov/) Volunteer project transcribing historical texts. ### Other Typing Sites Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). - [TypiNation](https://www.typination.com/) Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. - [keyma.sh](https://keyma.sh) Multiplayer typing website with a stenography world and public racing rooms. - [monkeytype](https://monkeytype.com/) *Some steno users have reported having their scores not saved as they were detected as bot-like* Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [Steno Jig](https://joshuagrams.github.io/steno-jig/form.html) as well). You may want to change some settings for steno input to work well: | setting name | setting | notes | | --------------- | ------- | - | | freedom mode | on | Allows you to delete any word, even if typed wrong | | strict space | on | Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke | | stop on error | off | Allows you to write incorrect characters | | confidence mode | off | Allow you to backspace | | quick end | off | If on, means that the test will end as soon as the last word is is typed, even if incorrect | | indicate typos | below/replace | Show typos | - [ZType](https://zty.pe/) Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. - [TypeRacer](http://typeracer.com) *Now bans steno users who show up in leaderboards, a sudden flip after years of steno users being allowed on the site* Online realtime typing competition. Use the [steno universe](https://play.typeracer.com/?universe=steno) to avoid getting banned (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [this user script](https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit) to get around the limit ([instructions](https://greasyfork.org/en)). - [10 Fast Fingers](https://10fastfingers.com/typing-test/english) *Bans steno users who break 100WPM* Short test of most common words. ## Flashcards You can use flashcards to help you memorise briefs, theory rules, phrases and more. See [Using Anki for Learning Stenography](https://github.com/openstenoproject/plover/wiki/Using-Anki-for-Learning-Stenography) for more details on how to get set up and community materials. ## Cheat sheets Quick image and text references. - QWERTY to steno layout - [Steno board next to the QWERTY layout](https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png) - Steno keys on top of a QWERTY keyboard - [Full keyboard](http://i.imgur.com/qIh1iJ0.png) - [Faded QWERTY](https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png) - [Faded QWERTY, with finger positions](https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png) - [Learn Plover! Cheat sheet](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet) - [Chart with all the standard sounds in Plover on the steno board](https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit) - [Which fingers to use for each key](https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit) - [Steno order](https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit) - Quick text references for: - [Fingerspelling](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling) - [Briefs](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs) - [Prefix/Suffix strokes](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes) - [Non-letters](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters) - [Numbers](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers) - [Steno Explained](https://steno.sammdot.ca/explainers) - [Steno Terminology](https://steno.sammdot.ca/steno-terminology.png) - [Plover Theory Basics](https://steno.sammdot.ca/plover-basics.png) - [Numbers](https://steno.sammdot.ca/plover-numbers.png) - [Fingerspelling](https://steno.sammdot.ca/plover-fingerspelling.png) - charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [Steno Explained](https://steno.sammdot.ca/explainers) </markdown> [[Category:Stenography]] c48b27db36e4b0b272bd0951b90f46fd2bac3d9e Brief Ideas 0 18 63 2024-02-05T16:04:12Z Rice 1 Created page with "<markdown> [Learn Plover!](https://www.openstenoproject.org/learn-plover/) is a great introduction to Plover's theory and has everything you need to get started writing in steno. However, there are some patterns across Plover's dictionary which are not documented there. This document aims to show some of the hidden patterns. It also suggests some others that you can consider using in your personal dictionary. <img src="http://qwertysteno.com/Images/steno-keyboard1.gif">..." wikitext text/x-wiki <markdown> [Learn Plover!](https://www.openstenoproject.org/learn-plover/) is a great introduction to Plover's theory and has everything you need to get started writing in steno. However, there are some patterns across Plover's dictionary which are not documented there. This document aims to show some of the hidden patterns. It also suggests some others that you can consider using in your personal dictionary. <img src="http://qwertysteno.com/Images/steno-keyboard1.gif"> ## In the Main Dictionary You can start using these patterns today! ### `SPW-` for int- and ent- <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM3MzU0MjY0NzM5ODQvMzE1OTMxNDg1MzU2MTYzMDg0L1NQVy0ucG5nIn0.PmMTgOlKRGBqsKjRfj79wRGZ2FU"> This originated in the first steno theory, published by Ward Stone Ireland in the early 20th century. Today, it is also a part of Magnum steno. There are some entries in the default dictionary that use `SPW-`, although it's not documented in [Learn Plover]. Examples: [Learn Plover]: https://www.openstenoproject.org/learn-plover/ * `SPWEPBLGT` for "intelligent". * `SPWRABGT` for "interact". * `SPWER` for "enter". * `SPWAOEURL` for "entirely". ### `-FRP` for -mp <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMyODQwMDc4NjA2MzM3Ly1GUlAucG5nIn0.7yN5cWWjUUj214MTDMRoactcKGY"> Usually, Plover theory (and Mirabai) uses `*PL` for the -mp sound in the end of a syllable. It can be difficult to add sounds after it. Instead, you can use `-FRP` to avoid conflicts and add `-B`, `-L` after -mp. Common uses of this are to add -mpl or -mbl to the end of a stroke: * `AFRP` for "amp" and `AFRPL` for "ample". This reduces conflicts with "apple" and "am". * `EUFRP` for "imp" ### `-FP` and `-AOUFP` for -ture <img src="https://images.discordapp.net/.eJwNxEsOhCAMANC7sB_K11APMGuvQJCgiVpC68p495m3eI-6x6FmtYl0ngHWnQuNVbPQyK3qRtSOmvvOutAJWSSX7ayXMFg_YfTJYDCYjHPBgLcR_T-LwaYUcXLw-S66X029P3evIJM.quQ3BjFFrW-Wn79vtoHMSe2U594"> <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8zMTU5MzQwNjAxNTUzNzE1MjEvMzE1OTM0NTY0MTE3OTA1NDEwL0FPLVVGUC5wbmcifQ.eOkuTdrVDh49idcRD_ztb5ZBN3c"> `-FP` is used for the -ch sound in words like "catch". The default dictionary also includes many briefs where it is used for the -ture suffix. for example: "nature", which can be stroked as `TPHAEUFP` (naich). A note: For some of these words, a tense u sound (`AOUFP`) is used for -ture instead of just the `-FP`: * `TPHAEUFP` for "nature" * `KRAOEFP` for "creature" * `KAOUFP` for "culture" * `TPAOEFP` for "feature" * `P*EUFP` for "picture" * `STRAOUFP` for "structure" * `SKAOUFP` for "sculpture" * `FRA*FP` or `FRAOUFP` for "fracture" ## Non-Plover Theory Ideas You will need to define new strokes in your dictionary with these ideas. ### `SKP-` for ex- <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzNjAwMzUwNjAxMjM3L1NLUC0ucG5nIn0.XnB7R4DxhVOeSpgr6mNIje2YCdE"> The default dictionary uses a combination of `KP-` and `S-` to make the leading ex- sound. For example: `KPEUT` for "exit" for `SPHRAEUPB` for "explain". The rules for which one to use [depend on the consonant following the ex-](https://www.dropbox.com/s/fa7fch2eocubrde/Philadelphia%20Clinic.pdf?dl=0). If you don't like this, you can use `SKP-` for a leading ex-: * `SKPRAGT` for "extract". * `SKPERPBL` for "external". * `SKPHRAEUPB` for "explain". Note: The leading `SKP-` is also used for some phrase briefs starting with "and" in the default dictionary. For example: * `SKPEBG` for "and he can" * `SKPALS` for "and also". If this is a problem for you, you can also try `SK*` instead of `SKP-`. ### `KPW-` for im- and em- <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzODA5ODQzMzcyMDMzL0tQVy0ucG5nIn0.V7JbEqDmCU4LLvjgKmaQG351A7s"> Examples: * `KPWRES` for "impress". ### `-FR` for -m <img src="https://images.discordapp.net/.eJwtyEEOhCAMAMC_cF_aikj0AfsAf0CAoIlaQuvJ7N_34hznMXc_zGI21SYLQN4lcc9WlHusxVbmepTYdrGJT4iqMW1nuVTAkZ_diBOS9y6QH-gtmhAdIoZhDvD5rrZd1fz-dDIgcg.eRrlLVQMtQVEDI0MRpiLtfXMmMc"> Above it's shown that `-FRP` can be used in the default dictionary for -mp. This stroke extends that idea: If `-PL` causes an issue (for example: "camel"), use `-FR`. For example: * `KAFRL` for "camel" </markdown> 929fb4cbdd1d5371062cc39168ef23ad9d24b5db 90 63 2024-02-05T18:07:14Z Rice 1 wikitext text/x-wiki <markdown> [Learn Plover!](https://www.openstenoproject.org/learn-plover/) is a great introduction to Plover's theory and has everything you need to get started writing in steno. However, there are some patterns across Plover's dictionary which are not documented there. This document aims to show some of the hidden patterns. It also suggests some others that you can consider using in your personal dictionary. <img src="http://qwertysteno.com/Images/steno-keyboard1.gif"> ## In the Main Dictionary You can start using these patterns today! ### `SPW-` for int- and ent- <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM3MzU0MjY0NzM5ODQvMzE1OTMxNDg1MzU2MTYzMDg0L1NQVy0ucG5nIn0.PmMTgOlKRGBqsKjRfj79wRGZ2FU"> This originated in the first steno theory, published by Ward Stone Ireland in the early 20th century. Today, it is also a part of Magnum steno. There are some entries in the default dictionary that use `SPW-`, although it's not documented in [Learn Plover]. Examples: [Learn Plover]: https://www.openstenoproject.org/learn-plover/ * `SPWEPBLGT` for "intelligent". * `SPWRABGT` for "interact". * `SPWER` for "enter". * `SPWAOEURL` for "entirely". ### `-FRP` for -mp <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMyODQwMDc4NjA2MzM3Ly1GUlAucG5nIn0.7yN5cWWjUUj214MTDMRoactcKGY"> Usually, Plover theory (and Mirabai) uses `*PL` for the -mp sound in the end of a syllable. It can be difficult to add sounds after it. Instead, you can use `-FRP` to avoid conflicts and add `-B`, `-L` after -mp. Common uses of this are to add -mpl or -mbl to the end of a stroke: * `AFRP` for "amp" and `AFRPL` for "ample". This reduces conflicts with "apple" and "am". * `EUFRP` for "imp" ### `-FP` and `-AOUFP` for -ture <img src="https://images.discordapp.net/.eJwNxEsOhCAMANC7sB_K11APMGuvQJCgiVpC68p495m3eI-6x6FmtYl0ngHWnQuNVbPQyK3qRtSOmvvOutAJWSSX7ayXMFg_YfTJYDCYjHPBgLcR_T-LwaYUcXLw-S66X029P3evIJM.quQ3BjFFrW-Wn79vtoHMSe2U594"> <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8zMTU5MzQwNjAxNTUzNzE1MjEvMzE1OTM0NTY0MTE3OTA1NDEwL0FPLVVGUC5wbmcifQ.eOkuTdrVDh49idcRD_ztb5ZBN3c"> `-FP` is used for the -ch sound in words like "catch". The default dictionary also includes many briefs where it is used for the -ture suffix. for example: "nature", which can be stroked as `TPHAEUFP` (naich). A note: For some of these words, a tense u sound (`AOUFP`) is used for -ture instead of just the `-FP`: * `TPHAEUFP` for "nature" * `KRAOEFP` for "creature" * `KAOUFP` for "culture" * `TPAOEFP` for "feature" * `P*EUFP` for "picture" * `STRAOUFP` for "structure" * `SKAOUFP` for "sculpture" * `FRA*FP` or `FRAOUFP` for "fracture" ## Non-Plover Theory Ideas You will need to define new strokes in your dictionary with these ideas. ### `SKP-` for ex- <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzNjAwMzUwNjAxMjM3L1NLUC0ucG5nIn0.XnB7R4DxhVOeSpgr6mNIje2YCdE"> The default dictionary uses a combination of `KP-` and `S-` to make the leading ex- sound. For example: `KPEUT` for "exit" for `SPHRAEUPB` for "explain". The rules for which one to use [depend on the consonant following the ex-](https://www.dropbox.com/s/fa7fch2eocubrde/Philadelphia%20Clinic.pdf?dl=0). If you don't like this, you can use `SKP-` for a leading ex-: * `SKPRAGT` for "extract". * `SKPERPBL` for "external". * `SKPHRAEUPB` for "explain". Note: The leading `SKP-` is also used for some phrase briefs starting with "and" in the default dictionary. For example: * `SKPEBG` for "and he can" * `SKPALS` for "and also". If this is a problem for you, you can also try `SK*` instead of `SKP-`. ### `KPW-` for im- and em- <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzODA5ODQzMzcyMDMzL0tQVy0ucG5nIn0.V7JbEqDmCU4LLvjgKmaQG351A7s"> Examples: * `KPWRES` for "impress". ### `-FR` for -m <img src="https://images.discordapp.net/.eJwtyEEOhCAMAMC_cF_aikj0AfsAf0CAoIlaQuvJ7N_34hznMXc_zGI21SYLQN4lcc9WlHusxVbmepTYdrGJT4iqMW1nuVTAkZ_diBOS9y6QH-gtmhAdIoZhDvD5rrZd1fz-dDIgcg.eRrlLVQMtQVEDI0MRpiLtfXMmMc"> Above it's shown that `-FRP` can be used in the default dictionary for -mp. This stroke extends that idea: If `-PL` causes an issue (for example: "camel"), use `-FR`. For example: * `KAFRL` for "camel" </markdown> [[Category:Stenography]] ec4cbe1d27f0b99017060ce039b8b56354027b2e Steno layouts and supported languages 0 19 64 2024-02-05T16:04:42Z Rice 1 Created page with "<markdown> A chorded system, or _system_ for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. **System Plugins** allow Plover to support different machine types and languages other than English. The [American Ward Stone Ireland Stenotype](https://en.wikipedia.org/wiki/Stenotype) is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems wo..." wikitext text/x-wiki <markdown> A chorded system, or _system_ for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. **System Plugins** allow Plover to support different machine types and languages other than English. The [American Ward Stone Ireland Stenotype](https://en.wikipedia.org/wiki/Stenotype) is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover. Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system. For systems proposed for implementation, check out the [issues list](https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems). | | | | --- | ---------------------------------------------------- | | 🔴 | Not supported in Plover | | 🟠 | Work in progress, not actively updated or maintained | | 🟡 | Work in progress | | 🟢 | Stable and available for Plover | ## Languages - English: - [Stenotype](#stenotype-ireland) - [Palantype](#possum-palantype) - [Michela](#michela) - [Phenrsteno](#phenrsteno) - [Velotype](#velotype) - [Jackdaw](#jackdaw) - [Kinglet](#kinglet) - Chinese, Mandarin (國語 / 普通话): - [Yawei](#yawei) - [EXun](#exun) - [Suoheng](#suoheng) - Chinese, Cantonese (粵語): - [SanSan](#sansan) - [MaaJik](#maajik) - Czech / Čeština: - [Stenotype](#czech-stenograph) - [Trillo](#trillo) - [Plover Czech](#plover-czech) - Danish / Dansk: [Stenotype](#stenotype-ireland) - Dutch / Nederlands: - [Stenotype](#stenotype-ireland) - [Velotype](#velotype) - Finnish / Suomi: - [Stenotype](#stenotype-ireland) - [Especias](#especias) - French / Français: - [Stenotype](#stenotype-ireland) - [Grandjean](#grandjean) - German / Deutsch: - [Stenotype](#stenotype-ireland) - [Palantype](#possum-palantype) - [Syllatype](#german-syllatype) - Greek / Ελληνικά: [Stenotype](#stenotype-ireland) - Hebrew / עברית: [Stenotype](#stenotype-ireland) - Hindi / हिन्दी: [Stenotype](#stenotype-ireland) - Italian / Italiano: - [Stenotype](#stenotype-ireland) - [Michela](#michela) - Japanese / 日本語: - [Stenotype](#stenotype-ireland) - [Sokutaipu](#sokutaipu) - [StenoWord](#stenoword) - [Hachidori](#hachidori) - [Frag](#frags-japanese-system) - Korean / 한국어: - [CAS](#korean-cas) - [Sorizava](#sorizava) - Polish / Polski: [Trillo](#trillo) - Portuguese / Português: [Stenotype](#stenotype-ireland) - Russian / Русский: - [Stenotype](#stenotype-ireland) - [Trillo](#trillo) - Slovak / Slovenčina: [Trillo](#trillo) - Spanish / Español: - [Stenotype](#stenotype-ireland) - [Grandjean](#grandjean) - [Especias](#especias) - Swedish / Svenska: [Palantype](#possum-palantype) - Thai / ภาษาไทย: [Stenotype](#stenotype-ireland) - Turkish / Türkçe: [Stenotype](#stenotype-ireland) - Vietnamese / Tiếng Việt: [Stenotype](#stenotype-ireland) --- ## Stenotype (Ireland) <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500"> The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------------- | ------------------------------------------------ | ---------- | ------------ | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🟢 **Plover** | Mirabai Knight | English | Phonetic | Built-in | [147k entries](https://github.com/openstenoproject/plover/blob/master/plover/assets/main.json) | [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) | | 🟢 **Lapwing** | [Aerick](https://github.com/aerickt) | English | Phonetic | Built-in | [115k entries](https://github.com/aerickt/steno-dictionaries/blob/main/lapwing-base.json) | [Learning Resources](https://github.com/aerickt/lapwing-for-beginners/wiki) | 🟡 **Cocoa** | [Kaoffie](https://github.com/Kaoffie) | English | Phonetic | Built-in | | 🟢 **LaSalle** | Claire Lefebvre-Yelle | French | Phonetic | Built-in | [4.2k entries](https://github.com/morinted/la_tao_dictionary) | Non-realtime-capable theory, taught at the _École de sténographie judiciaire du Québec_ | | 🟡 **Pluvier** | [Vermoot](https://github.com/Vermoot) | French | Phonetic | | | Realtime-capable theory based on LaSalle | | 🟢 **Easy Korean Steno** | [Peter Park](https://github.com/petercpark) | Korean | Orthographic | Requires [plover-python-dictionary](https://github.com/openstenoproject/plover_python_dictionary) | [Python Dictionary](https://github.com/petercpark/easy_korean_steno/blob/master/easy_Korean_steno_chorded.py) | 🟢 **Stanley's** | [Stanley Sakai](https://github.com/stanographer) | Spanish | Phonetic | Built-in | [12k entries](https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json) | | 🟢 **EO Variant** | [Eliseo Ocampos](https://github.com/roskoff) | Spanish | Phonetic | [plover-spanish-system-eo-variant](https://github.com/roskoff/plover_spanish_system_eo_variant) | 71k entries | Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules. | | 🔴 **Marino** | | Spanish | Phonetic | | | Spanish theory used in the Argentine Senate, along with Spanish Grandjean.<br>[Overview](https://taquigrafica.ucoz.net/publ/edicion_numero_01/2-1-0-14)<br>[Facebook Page](https://www.facebook.com/stenocap) | | 🟢 **Trillo Finnish** | Priscilla Trillo | Finnish | Phonetic | | [49k entries](https://github.com/Plover-Trillo/pikakirjoitus/blob/master/Suomeksi.rtf) | [Textbook](https://github.com/Plover-Trillo/pikakirjoitus/blob/master/PIKAKIRJOITUS%20SUOMEKSI.pdf) (in Finnish) | | 🟢 **Aerick's** | [Aerick](https://github.com/aerickt) | Vietnamese | Orthographic | Built-in | [7k entries](https://github.com/aerickt/steno-dictionaries/blob/main/viet.json) | [Learning Resources](https://github.com/aerickt/steno-dictionaries/wiki/Vietnamese-Steno) | 🟢 **plover-vi** | user202729 | Vietnamese | Orthographic | [`plover-vi`](https://github.com/user202729/plover_vi) | | 🟡 **Hindi Devanagari** | [winston](https://github.com/winstond/hind_plover_dictionary) | Hindi | Phonetic | N/A| [1,404 entries](https://github.com/winstond/hind_plover_dictionary)|[Home Page](https://github.com/winstond/hind_plover_dictionary)| ### Shavian <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500"> Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------- | ----------- | ----------------- | ------------ | ------ | ---------- | --------------------------------------------------------------- | | 🟠 **Magpie** | Lynn (Ruma) | English (Shavian) | Orthographic | | | Capable of both Shavian and orthodox (Latin script) translation | ### Brazilian Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500"> Brazilian Portuguese system used by [Paulo Paniago](http://openstenoblog.blogspot.ca/2015/04/my-experience-in-open-source.html), published in the textbook _Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador_. Also included in some Stenograph machines. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------------------- | ----------------------------------------------------- | ---------- | -------- | -------------------------------------------------------------------- | ----------------------------------------------- | ----- | | 🟢 **Brazilian Stenograph** | Randall Adam Czerenda, Jucineia J. de Andrade Pereira | Portuguese | Phonetic | [`plover-portuguese`](https://github.com/morinted/plover_portuguese) | 4k entries<br>(available on the Plover Discord) | ### Czech Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500"> The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------------- | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Czech Stenograph** | | Czech | Phonetic | ### Greek Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500"> The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------------- | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Greek Stenograph** | | Greek | Phonetic | ### Hebrew Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500"> The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------ | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Hebrew Stenograph** | | Hebrew | Phonetic | ### Turkish Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500"> The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------- | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Turkish Stenograph** | | Turkish | Phonetic | ### Russian Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500"> The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------- | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Russian Stenograph** | | Russian | Phonetic | ### Spanish Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500"> The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------- | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Spanish Stenograph** | | Spanish | Phonetic | ### German Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500"> German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------ | ------ | -------- | -------- | ------------------------------------------------------------ | ---------- | ----- | | 🔴 **German Stenograph** | | German | Phonetic | [`plover-german`](https://github.com/percidae/plover_german) | ### Regenpfeifer <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500"> A German steno system based on a modified English stenotype layout; the `-Z` key is replaced with `-N`. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------- | ----------------------------------------- | -------- | -------- | --------------------------------------------------------------------- | ------------ | ------------------------------------------------------------- | | 🟠 **Regenpfeifer** | [Martin Körner](https://github.com/mkrnr) | German | Phonetic | [`plover-regenpfeifer`](https://github.com/mkrnr/plover_regenpfeifer) | 219k entries | [Dictionary generator](https://github.com/mkrnr/regenpfeifer) | ### German Syllatype A syllabic and orthographic system with the mission to be more intuitive and easy to learn. | | Author | Language | Type | Plugin | Dictionary | Notes | | ---------- | -------------- | -------- | -------- | --------------- | ------------ | ------------------------------------------------------------- | | 🟢 **Syllatype** | [YAMERO](https://github.com/YAMEROOOO) | German | Orthographic | [`plover-german-syllatype`](https://github.com/YAMEROOOO/plover-german-syllatype) | 5k+ entries (syllables) | | ### 42triangles' Kana System <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500"> Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------------- | ----------- | -------- | ----------------------------------------- | ------ | ---------- | -------------------- | | 🟢 **42triangles' Kana System** | 42triangles | Japanese | Orthographic (Mora + Coda)<br>Romaji-only | | | Relies on a user IME | ### Willem's Kana System <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500"> A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------------------- | --------------------------------------------- | -------- | ----------------------------------------- | ---------------------------------------------------------------------------- | ---------- | -------------------- | | 🟢 **Willem's Kana System** | [Willem Sonke](https://github.com/Willem3141) | Japanese | Orthographic (Mora + Coda)<br>Romaji-only | [`plover-japanese-kana`](https://github.com/Willem3141/plover_japanese_kana) | | Relies on a user IME | ### Danish Hjejle <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500"> A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------- | ---------------------------------------------------- | -------- | -------- | -------- | -------------------------------------------------------- | ----- | | 🟢 **Hjejle** | [Lars Rune Præstmark](https://github.com/SeaLiteral) | Danish | Phonetic | Built-in | [5k entries](https://github.com/SeaLiteral/hjejleOrdbog) | ### Melani #### Italian <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------- | ------ | -------- | ------------ | ----------------------------------------------------------------- | ---------- | ----------------------------------- | | 🟢 **Melani** | | Italian | Orthographic | [`plover-melani`](https://github.com/benoit-pierre/plover_melani) | | [Stenolab](https://www.stenolab.it) | #### Spanish <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500"> Spanish system based on the Melani Italian layout, used at MQD. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------- | ------------------------------------------------- | -------- | -------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ----- | | 🟢 **MQD Melani** | [Noelia Ruiz Martínez](https://github.com/nvdaes) | Spanish | Phonetic | [`plover-spanish-mqd`](https://github.com/nvdaes/plover_spanish_mqd) | [11k entries](https://github.com/nvdaes/plover_spanish_mqd/tree/main/plover_spanish_mqd) | #### Russian <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500"> Not much is known about this layout; see [this](https://github.com/openstenoproject/plover/issues/492) discussion about Russian steno. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------- | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Melani** | | Russian | Phonetic | ### Thai Steno <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500"> A work-in-progress Thai steno system. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------- | ------------ | -------- | -------- | ------------------------------------------------------------------ | ---------- | ----- | | 🟠 **Thai Steno** | Parnikkapore | Thai | Phonetic | [`plover-thsteno`](https://github.com/parnikkapore/plover_thsteno) | ### Jade's Dutch System <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500"> Dutch steno system that uses a modified version of the English stenotype layout with one extra `G` key on the left. | | Author | Language | Type | Plugin | Dictionary | Notes | | -------------------------- | ---------------------------------------- | -------- | -------- | --------------------------------------------------------- | ------------ | ----- | | 🟢 **Jade's Dutch System** | [Jade Geels](https://github.com/Jade-GG) | Dutch | Phonetic | [`plover-dutch`](https://github.com/Jade-GG/Plover_Dutch) | 3.4k entries | ### Willem's Dutch System <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500"> Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical. | | Author | Language | Type | Plugin | Dictionary | Notes | | ---------------------------- | --------------------------------------------- | -------- | -------- | ------------------------------------------------------------ | ------------ | ----- | | 🟢 **Willem's Dutch System** | [Willem Sonke](https://github.com/Willem3141) | Dutch | Phonetic | [`plover-dutch`](https://github.com/Willem3141/plover_dutch) | 7.7k entries | ## Grandjean <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500"> The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts). | | Author | Language | Type | Plugin | Dictionary | Notes | | ---------------- | ------ | -------- | -------- | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ----------------------------------------------------------------------------- | | 🟢 **Grandjean** | | French | Phonetic | [`plover-grandjean`](https://github.com/stenomax/plover_grandjean) | [690k+ entries](https://github.com/azizyemloul/plover-france-dict) | [GitHub](https://github.com/azizyemloul/plover-france-dict) | | 🔴 **Grandjean** | | Spanish | Phonetic | | | [Asociacion Española de Estenotipistas](http://www.estenotipiaasociacion.com) | ## Michela <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500"> A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent. | | Author | Language | Type | Plugin | Dictionary | Notes | | ---------------- | -------- | -------- | ------------ | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | | 🟢 **Michela** | Sillabix | Italian | Phonetic | [`plover-michela`](https://github.com/benoit-pierre/plover_michela) | [103k entries](https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano) | [Manual](https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano) | | 🟡 **Michela** | Sillabix | English | Phonetic | [`plover-michela`](https://github.com/benoit-pierre/plover_michela) | [150 entries](<https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json>) | [Manual](<https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction)>) | | 🟡 **Midi4Text** | Sillabix | Italian | Orthographic | [`plover-midi4text`](https://github.com/nsmarkop/plover_midi4text) | [95k entries](<https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json>) | [Manual](<https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA)>) | | 🟡 **Midi4Text** | Sillabix | English | Orthographic | [`plover-midi4text`](https://github.com/nsmarkop/plover_midi4text) | [159k entries](<https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.7).json>) | [Manual](<https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG)>) | ## Possum Palantype <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500"> The [Possum Palantype](http://www.openstenoproject.org/palantype) is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some [STTRs](https://en.wikipedia.org/wiki/Speech-to-text_reporter) worldwide for writing in English. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------ | ------ | -------- | -------- | ------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------ | | 🟢 **Palantype** | | English | Phonetic | [`plover-palantype`](https://github.com/morinted/plover_palantype) | 21k entries | [Learn Palantype](http://www.openstenoproject.org/palantype/) | | 🔴 **Swedish Palantype** | | Swedish | Phonetic | [`plover-swedish-palantype`](https://github.com/stenoshrink/plover_swedish_palantype) | 87k entries | [Swedish Theory](https://github.com/stenoshrink/plover_swedish_palantype/tree/master/Swedish%20theory) | ### Plover German Palantype <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500"> German steno system based on the Possum Palantype layout with two additional keys. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------------- | ------ | -------- | -------- | -------------------------------------------------------------------------------- | ----------- | ----- | | 🟢 **German Palantype** | | German | Phonetic | [`plover-palantype-german`](https://github.com/percidae/plover_palantype_german) | 85k entries | ### Ruben Moor's German Palantype <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------------- | ---------- | -------- | -------- | ------ | ----------------------------------------------- | --------------------------------- | | 🟡 **German Palantype** | Ruben Moor | German | Phonetic | | 100k entries, with plans to expand to 2 million | [Tutorial](https://palantype.com) | ## Trillo ### Trillo Russian <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500"> A realtime theory for Russian writing based on the Tréal machine. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------------- | ---------------- | -------- | -------- | ---------------------------------------------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------- | | 🟢 **Trillo Russian** | Priscilla Trillo | Russian | Phonetic | [`plover-russian-trillo`](https://github.com/morinted/plover_russian_trillo) | 15k entries | [Textbook](https://github.com/openstenoproject/plover/files/1533593/Russian.Theory.-.ARA.doc.zip) (in mixed English/Russian) | ### Trillo West Slavic <img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------- | ---------------- | --------------------- | -------- | ------ | ---------- | -------------------------------------------------------------------------------------------------- | | 🟢 **Trillo West Slavic** | Priscilla Trillo | Czech, Slovak, Polish | Phonetic | | | [Textbook](https://github.com/Plover-Trillo/WestSlavicStenography/releases/tag/%23SlavicLanguages) | ## Yawei ### Yawei <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500"> Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------- | ------ | ----------------------------------- | ------------------------- | ------ | ---------- | ------------------------------------------------------------------------------- | | 🟡 **Yawei** (亚伟) | | Mandarin (Traditional / Simplified) | Symmetric Toneless Pinyin | | | [Wikipedia](https://zh.wikipedia.org/wiki/%E4%BA%9A%E4%BC%9F%E9%80%9F%E5%BD%95) | ### MaaJik <img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | -------------------- | ------------------------------------------------------------------------------------- | ----------------------- | --------------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----- | | 🟡 **MaaJik** (孖翼) | [Sammi de Guzman](https://github.com/sammdot), [Samuel Lo](https://github.com/vatnid) | Cantonese (Traditional) | Symmetric Toneless Jyutping | [`plover-maajik`](https://github.com/sammdot/plover-maajik) | [314k entries](https://github.com/sammdot/plover-maajik/tree/main/maajik/dictionaries) | ### SanSan <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | -------------------- | --------------------------------------------- | ----------------------- | --------------------------- | ------ | ---------- | ------------------------------------------------------- | | 🟠 **SanSan** (珊々) | [Sammi de Guzman](https://github.com/sammdot) | Cantonese (Traditional) | Symmetric Toneless Jyutping | | | [Steno Explainers](https://steno.sammdot.ca/explainers) | ### TCIM <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | ---------------------- | ------ | ---------------------- | ------------------------- | -------------------------------------------------------- | ---------- | ----- | | 🟡 **TCIM** (千鳥詞注) | [Quisette C](https://github.com/Quisette) | Mandarin (Traditional) | Symmetric Toneless Zhuyin | [`plover-tcim`](https://github.com/Quisette/plover-TCIM) | ## EXun <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500"> EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------ | ------ | --------------------- | ------------------------- | ------ | ---------- | ----- | | 🔴 **EXun** (E 讯) | | Mandarin (Simplified) | Symmetric Toneless Pinyin | ## Suoheng <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500"> Very little is known about the Suoheng system and there are no plans to implement it in Plover. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------------- | ------ | --------------------- | ------------------------- | ------ | ---------- | ----- | | 🔴 **Suoheng** (索恒) | | Mandarin (Simplified) | Symmetric Toneless Pinyin | ## Korean CAS <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500"> The Computer Aided Steno-machine, or CAS, was developed by [Korea Steno](http://www.koreasteno.com/) and features one of the two modern stenography systems for Korean in use today. | | Author | Language | Type | Plugin | Dictionary | Notes | | ---------- | ------ | -------- | ----------------------------------------------- | -------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------ | | 🟡 **CAS** | | Korean | Orthographic (Initial/Medial/Final) with Briefs | [`plover-korean`](https://github.com/nsmarkop/plover_korean) ("Korean Modern C") | | [Theory documentation](https://github.com/nsmarkop/plover_korean/tree/master/plover_korean/system/cas) | ## Korean Sorizava <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500"> Sorizava, developed by [a company of the same name](http://www.sorizava.co.kr/), is the second of the modern stenography systems for Korean in use today and the more recent to have been created. The Sorizava system is not currently under development. There are partial pieces of an implementation in [plover-korean](https://github.com/nsmarkop/plover_korean) but outside of a partial dictionary no theory materials have been obtained to progress further. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------- | ------ | -------- | ----------------------------------------------- | -------------------------------------------------------------------------------- | ---------- | ----- | | 🔴 **Sorizava** | | Korean | Orthographic (Initial/Medial/Final) with Briefs | [`plover-korean`](https://github.com/nsmarkop/plover_korean) ("Korean Modern S") | ## Sokutaipu <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500"> Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------------------- | ------ | -------- | ------------------------------------------- | ------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------- | | 🟢 **Sokutaipu** (ソクタイプ) | | Japanese | Semi-Symmetric 2 Mora + 1 Coda<br>Pure Kana | [`plover-japanese-sokutaipu`](https://github.com/na4zagin3/plover_japanese_sokutaipu) | 365k entries | [Kana table](http://hoangmoc123.d.dooo.jp/sokutaipu.html) | ## StenoWord <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500"> The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------------- | ------ | -------- | ------------------------------------ | ----------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------- | | 🟢 **StenoWord** (ステノワード) | | Japanese | Orthographic 1-Syllable<br>Pure Kana | [`plover-japanese-stenoword`](https://github.com/na2hiro/plover-japanese-stenoword) | 2.6k entries | [Kana table](http://hoangmoc123.d.dooo.jp/Stenoword.html) | ## Frag's Japanese System <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------------------- | ------ | -------- | ------------------------------------------------------------ | ------ | ---------- | ----- | | 🟡 **Frag's Japanese System** | Frag | Japanese | Symmetric 2 Mora + 2 Coda<br>Stucture-based kanji conversion | A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke. This is the updated version of the Japanese layout available on TypeyType. ## Hachidori <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500"> Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------------------- | ------------------------------------- | -------- | ------------------------- | ------ | ---------- | ----- | | 🟡 **Hachidori** (はちどり) | [Kaoffie](https://github.com/Kaoffie) | Japanese | Symmetric 2 Mora + 2 Coda | ## Velotype <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500"> The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in [Qweyboard](https://github.com/kqr/qweyboard) by kqr. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------- | ------ | -------------- | ------------ | ---------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------- | | 🟢 **Velotype** | | English, Dutch | Orthographic | [`plover-syllabic-chording`](https://github.com/AlexandraAlter/plover_syllabic_chording) | | [Official website](https://www.velotype.com/en/homepage-eng/) | ## Jackdaw <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500"> An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling. | | Author | Language | Type | Plugin | Dictionary | Notes | | -------------- | ------ | -------- | ------------ | -------------------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------- | | 🟢 **Jackdaw** | | English | Orthographic | [`plover-jackdaw-alt1`](https://github.com/user202729/plover-jackdaw-alt1) | | [Learn Plover! Jackdaw tutorial](https://sites.google.com/site/learnplover/jackdaw) | ## Kinglet <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500"> Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use. | | Author | Language | Type | Plugin | Dictionary | Notes | | -------------- | ------------- | -------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------- | | 🟢 **Kinglet** | Zachary Brown | English | Orthographic | [Plover 2.5.8 modified for Kinglet](https://drive.google.com/file/d/0B9Je8TDYCh1xSVRjVmQ0RUF0ejA/edit?resourcekey=0-6XylRvd298I4w4OVUc-IDg) | | [Learn Plover! Kinglet tutorial](https://sites.google.com/site/learnplover/kinglet-a-letter-based-stenotype-system) | ## Phenrsteno <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500"> Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------- | ------------------------------------------------- | -------- | -------- | ------------------------------------------------------------------- | ----------- | -------------------------------------------------------------------- | | 🟢 **Phenrsteno** | [Gregory Chamberlain](https://github.com/chambln) | English | Phonetic | [`plover-phenrsteno`](https://github.com/chambln/plover-phenrsteno) | 15k entries | [Phenrsteno wiki](https://github.com/chambln/plover-phenrsteno/wiki) | ## Plover Czech <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------- | ------------------------------------------------ | -------- | -------- | ----------------------------------------------------------- | ---------- | ----- | | 🟠 **Plover Czech** | [Ashlynn Anderson](https://github.com/lambdadog) | Czech | Phonetic | [`plover-czech`](https://github.com/lambdadog/plover_czech) | ## Especias ### Finnish Especias <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500"> An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------- | ---------------------------------------------------- | -------- | ------------ | -------- | ---------------------------------------------------- | ----- | | 🟢 **Especias** | [Lars Rune Præstmark](https://github.com/SeaLiteral) | Finnish | Orthographic | Built-in | [Dictionary](https://github.com/SeaLiteral/especias) | ### Spanish Especias <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500"> A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------- | ---------------------------------------------------- | -------- | ------------ | -------- | ---------------------------------------------------- | ----- | | 🟢 **Especias** | [Lars Rune Præstmark](https://github.com/SeaLiteral) | Spanish | Orthographic | Built-in | [Dictionary](https://github.com/SeaLiteral/especias) | </markdown> c394ebf98c1b723339b201f8036d563145fda72a 91 64 2024-02-05T18:07:37Z Rice 1 wikitext text/x-wiki <markdown> A chorded system, or _system_ for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. **System Plugins** allow Plover to support different machine types and languages other than English. The [American Ward Stone Ireland Stenotype](https://en.wikipedia.org/wiki/Stenotype) is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover. Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system. For systems proposed for implementation, check out the [issues list](https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems). | | | | --- | ---------------------------------------------------- | | 🔴 | Not supported in Plover | | 🟠 | Work in progress, not actively updated or maintained | | 🟡 | Work in progress | | 🟢 | Stable and available for Plover | ## Languages - English: - [Stenotype](#stenotype-ireland) - [Palantype](#possum-palantype) - [Michela](#michela) - [Phenrsteno](#phenrsteno) - [Velotype](#velotype) - [Jackdaw](#jackdaw) - [Kinglet](#kinglet) - Chinese, Mandarin (國語 / 普通话): - [Yawei](#yawei) - [EXun](#exun) - [Suoheng](#suoheng) - Chinese, Cantonese (粵語): - [SanSan](#sansan) - [MaaJik](#maajik) - Czech / Čeština: - [Stenotype](#czech-stenograph) - [Trillo](#trillo) - [Plover Czech](#plover-czech) - Danish / Dansk: [Stenotype](#stenotype-ireland) - Dutch / Nederlands: - [Stenotype](#stenotype-ireland) - [Velotype](#velotype) - Finnish / Suomi: - [Stenotype](#stenotype-ireland) - [Especias](#especias) - French / Français: - [Stenotype](#stenotype-ireland) - [Grandjean](#grandjean) - German / Deutsch: - [Stenotype](#stenotype-ireland) - [Palantype](#possum-palantype) - [Syllatype](#german-syllatype) - Greek / Ελληνικά: [Stenotype](#stenotype-ireland) - Hebrew / עברית: [Stenotype](#stenotype-ireland) - Hindi / हिन्दी: [Stenotype](#stenotype-ireland) - Italian / Italiano: - [Stenotype](#stenotype-ireland) - [Michela](#michela) - Japanese / 日本語: - [Stenotype](#stenotype-ireland) - [Sokutaipu](#sokutaipu) - [StenoWord](#stenoword) - [Hachidori](#hachidori) - [Frag](#frags-japanese-system) - Korean / 한국어: - [CAS](#korean-cas) - [Sorizava](#sorizava) - Polish / Polski: [Trillo](#trillo) - Portuguese / Português: [Stenotype](#stenotype-ireland) - Russian / Русский: - [Stenotype](#stenotype-ireland) - [Trillo](#trillo) - Slovak / Slovenčina: [Trillo](#trillo) - Spanish / Español: - [Stenotype](#stenotype-ireland) - [Grandjean](#grandjean) - [Especias](#especias) - Swedish / Svenska: [Palantype](#possum-palantype) - Thai / ภาษาไทย: [Stenotype](#stenotype-ireland) - Turkish / Türkçe: [Stenotype](#stenotype-ireland) - Vietnamese / Tiếng Việt: [Stenotype](#stenotype-ireland) --- ## Stenotype (Ireland) <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500"> The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------------- | ------------------------------------------------ | ---------- | ------------ | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🟢 **Plover** | Mirabai Knight | English | Phonetic | Built-in | [147k entries](https://github.com/openstenoproject/plover/blob/master/plover/assets/main.json) | [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) | | 🟢 **Lapwing** | [Aerick](https://github.com/aerickt) | English | Phonetic | Built-in | [115k entries](https://github.com/aerickt/steno-dictionaries/blob/main/lapwing-base.json) | [Learning Resources](https://github.com/aerickt/lapwing-for-beginners/wiki) | 🟡 **Cocoa** | [Kaoffie](https://github.com/Kaoffie) | English | Phonetic | Built-in | | 🟢 **LaSalle** | Claire Lefebvre-Yelle | French | Phonetic | Built-in | [4.2k entries](https://github.com/morinted/la_tao_dictionary) | Non-realtime-capable theory, taught at the _École de sténographie judiciaire du Québec_ | | 🟡 **Pluvier** | [Vermoot](https://github.com/Vermoot) | French | Phonetic | | | Realtime-capable theory based on LaSalle | | 🟢 **Easy Korean Steno** | [Peter Park](https://github.com/petercpark) | Korean | Orthographic | Requires [plover-python-dictionary](https://github.com/openstenoproject/plover_python_dictionary) | [Python Dictionary](https://github.com/petercpark/easy_korean_steno/blob/master/easy_Korean_steno_chorded.py) | 🟢 **Stanley's** | [Stanley Sakai](https://github.com/stanographer) | Spanish | Phonetic | Built-in | [12k entries](https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json) | | 🟢 **EO Variant** | [Eliseo Ocampos](https://github.com/roskoff) | Spanish | Phonetic | [plover-spanish-system-eo-variant](https://github.com/roskoff/plover_spanish_system_eo_variant) | 71k entries | Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules. | | 🔴 **Marino** | | Spanish | Phonetic | | | Spanish theory used in the Argentine Senate, along with Spanish Grandjean.<br>[Overview](https://taquigrafica.ucoz.net/publ/edicion_numero_01/2-1-0-14)<br>[Facebook Page](https://www.facebook.com/stenocap) | | 🟢 **Trillo Finnish** | Priscilla Trillo | Finnish | Phonetic | | [49k entries](https://github.com/Plover-Trillo/pikakirjoitus/blob/master/Suomeksi.rtf) | [Textbook](https://github.com/Plover-Trillo/pikakirjoitus/blob/master/PIKAKIRJOITUS%20SUOMEKSI.pdf) (in Finnish) | | 🟢 **Aerick's** | [Aerick](https://github.com/aerickt) | Vietnamese | Orthographic | Built-in | [7k entries](https://github.com/aerickt/steno-dictionaries/blob/main/viet.json) | [Learning Resources](https://github.com/aerickt/steno-dictionaries/wiki/Vietnamese-Steno) | 🟢 **plover-vi** | user202729 | Vietnamese | Orthographic | [`plover-vi`](https://github.com/user202729/plover_vi) | | 🟡 **Hindi Devanagari** | [winston](https://github.com/winstond/hind_plover_dictionary) | Hindi | Phonetic | N/A| [1,404 entries](https://github.com/winstond/hind_plover_dictionary)|[Home Page](https://github.com/winstond/hind_plover_dictionary)| ### Shavian <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500"> Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------- | ----------- | ----------------- | ------------ | ------ | ---------- | --------------------------------------------------------------- | | 🟠 **Magpie** | Lynn (Ruma) | English (Shavian) | Orthographic | | | Capable of both Shavian and orthodox (Latin script) translation | ### Brazilian Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500"> Brazilian Portuguese system used by [Paulo Paniago](http://openstenoblog.blogspot.ca/2015/04/my-experience-in-open-source.html), published in the textbook _Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador_. Also included in some Stenograph machines. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------------------- | ----------------------------------------------------- | ---------- | -------- | -------------------------------------------------------------------- | ----------------------------------------------- | ----- | | 🟢 **Brazilian Stenograph** | Randall Adam Czerenda, Jucineia J. de Andrade Pereira | Portuguese | Phonetic | [`plover-portuguese`](https://github.com/morinted/plover_portuguese) | 4k entries<br>(available on the Plover Discord) | ### Czech Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500"> The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------------- | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Czech Stenograph** | | Czech | Phonetic | ### Greek Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500"> The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------------- | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Greek Stenograph** | | Greek | Phonetic | ### Hebrew Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500"> The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------ | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Hebrew Stenograph** | | Hebrew | Phonetic | ### Turkish Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500"> The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------- | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Turkish Stenograph** | | Turkish | Phonetic | ### Russian Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500"> The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------- | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Russian Stenograph** | | Russian | Phonetic | ### Spanish Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500"> The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------- | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Spanish Stenograph** | | Spanish | Phonetic | ### German Stenograph <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500"> German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------ | ------ | -------- | -------- | ------------------------------------------------------------ | ---------- | ----- | | 🔴 **German Stenograph** | | German | Phonetic | [`plover-german`](https://github.com/percidae/plover_german) | ### Regenpfeifer <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500"> A German steno system based on a modified English stenotype layout; the `-Z` key is replaced with `-N`. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------- | ----------------------------------------- | -------- | -------- | --------------------------------------------------------------------- | ------------ | ------------------------------------------------------------- | | 🟠 **Regenpfeifer** | [Martin Körner](https://github.com/mkrnr) | German | Phonetic | [`plover-regenpfeifer`](https://github.com/mkrnr/plover_regenpfeifer) | 219k entries | [Dictionary generator](https://github.com/mkrnr/regenpfeifer) | ### German Syllatype A syllabic and orthographic system with the mission to be more intuitive and easy to learn. | | Author | Language | Type | Plugin | Dictionary | Notes | | ---------- | -------------- | -------- | -------- | --------------- | ------------ | ------------------------------------------------------------- | | 🟢 **Syllatype** | [YAMERO](https://github.com/YAMEROOOO) | German | Orthographic | [`plover-german-syllatype`](https://github.com/YAMEROOOO/plover-german-syllatype) | 5k+ entries (syllables) | | ### 42triangles' Kana System <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500"> Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------------- | ----------- | -------- | ----------------------------------------- | ------ | ---------- | -------------------- | | 🟢 **42triangles' Kana System** | 42triangles | Japanese | Orthographic (Mora + Coda)<br>Romaji-only | | | Relies on a user IME | ### Willem's Kana System <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500"> A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------------------- | --------------------------------------------- | -------- | ----------------------------------------- | ---------------------------------------------------------------------------- | ---------- | -------------------- | | 🟢 **Willem's Kana System** | [Willem Sonke](https://github.com/Willem3141) | Japanese | Orthographic (Mora + Coda)<br>Romaji-only | [`plover-japanese-kana`](https://github.com/Willem3141/plover_japanese_kana) | | Relies on a user IME | ### Danish Hjejle <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500"> A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------- | ---------------------------------------------------- | -------- | -------- | -------- | -------------------------------------------------------- | ----- | | 🟢 **Hjejle** | [Lars Rune Præstmark](https://github.com/SeaLiteral) | Danish | Phonetic | Built-in | [5k entries](https://github.com/SeaLiteral/hjejleOrdbog) | ### Melani #### Italian <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------- | ------ | -------- | ------------ | ----------------------------------------------------------------- | ---------- | ----------------------------------- | | 🟢 **Melani** | | Italian | Orthographic | [`plover-melani`](https://github.com/benoit-pierre/plover_melani) | | [Stenolab](https://www.stenolab.it) | #### Spanish <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500"> Spanish system based on the Melani Italian layout, used at MQD. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------- | ------------------------------------------------- | -------- | -------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ----- | | 🟢 **MQD Melani** | [Noelia Ruiz Martínez](https://github.com/nvdaes) | Spanish | Phonetic | [`plover-spanish-mqd`](https://github.com/nvdaes/plover_spanish_mqd) | [11k entries](https://github.com/nvdaes/plover_spanish_mqd/tree/main/plover_spanish_mqd) | #### Russian <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500"> Not much is known about this layout; see [this](https://github.com/openstenoproject/plover/issues/492) discussion about Russian steno. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------- | ------ | -------- | -------- | ------ | ---------- | ----- | | 🔴 **Melani** | | Russian | Phonetic | ### Thai Steno <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500"> A work-in-progress Thai steno system. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------- | ------------ | -------- | -------- | ------------------------------------------------------------------ | ---------- | ----- | | 🟠 **Thai Steno** | Parnikkapore | Thai | Phonetic | [`plover-thsteno`](https://github.com/parnikkapore/plover_thsteno) | ### Jade's Dutch System <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500"> Dutch steno system that uses a modified version of the English stenotype layout with one extra `G` key on the left. | | Author | Language | Type | Plugin | Dictionary | Notes | | -------------------------- | ---------------------------------------- | -------- | -------- | --------------------------------------------------------- | ------------ | ----- | | 🟢 **Jade's Dutch System** | [Jade Geels](https://github.com/Jade-GG) | Dutch | Phonetic | [`plover-dutch`](https://github.com/Jade-GG/Plover_Dutch) | 3.4k entries | ### Willem's Dutch System <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500"> Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical. | | Author | Language | Type | Plugin | Dictionary | Notes | | ---------------------------- | --------------------------------------------- | -------- | -------- | ------------------------------------------------------------ | ------------ | ----- | | 🟢 **Willem's Dutch System** | [Willem Sonke](https://github.com/Willem3141) | Dutch | Phonetic | [`plover-dutch`](https://github.com/Willem3141/plover_dutch) | 7.7k entries | ## Grandjean <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500"> The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts). | | Author | Language | Type | Plugin | Dictionary | Notes | | ---------------- | ------ | -------- | -------- | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ----------------------------------------------------------------------------- | | 🟢 **Grandjean** | | French | Phonetic | [`plover-grandjean`](https://github.com/stenomax/plover_grandjean) | [690k+ entries](https://github.com/azizyemloul/plover-france-dict) | [GitHub](https://github.com/azizyemloul/plover-france-dict) | | 🔴 **Grandjean** | | Spanish | Phonetic | | | [Asociacion Española de Estenotipistas](http://www.estenotipiaasociacion.com) | ## Michela <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500"> A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent. | | Author | Language | Type | Plugin | Dictionary | Notes | | ---------------- | -------- | -------- | ------------ | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | | 🟢 **Michela** | Sillabix | Italian | Phonetic | [`plover-michela`](https://github.com/benoit-pierre/plover_michela) | [103k entries](https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano) | [Manual](https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano) | | 🟡 **Michela** | Sillabix | English | Phonetic | [`plover-michela`](https://github.com/benoit-pierre/plover_michela) | [150 entries](<https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json>) | [Manual](<https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction)>) | | 🟡 **Midi4Text** | Sillabix | Italian | Orthographic | [`plover-midi4text`](https://github.com/nsmarkop/plover_midi4text) | [95k entries](<https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json>) | [Manual](<https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA)>) | | 🟡 **Midi4Text** | Sillabix | English | Orthographic | [`plover-midi4text`](https://github.com/nsmarkop/plover_midi4text) | [159k entries](<https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.7).json>) | [Manual](<https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG)>) | ## Possum Palantype <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500"> The [Possum Palantype](http://www.openstenoproject.org/palantype) is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some [STTRs](https://en.wikipedia.org/wiki/Speech-to-text_reporter) worldwide for writing in English. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------ | ------ | -------- | -------- | ------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------ | | 🟢 **Palantype** | | English | Phonetic | [`plover-palantype`](https://github.com/morinted/plover_palantype) | 21k entries | [Learn Palantype](http://www.openstenoproject.org/palantype/) | | 🔴 **Swedish Palantype** | | Swedish | Phonetic | [`plover-swedish-palantype`](https://github.com/stenoshrink/plover_swedish_palantype) | 87k entries | [Swedish Theory](https://github.com/stenoshrink/plover_swedish_palantype/tree/master/Swedish%20theory) | ### Plover German Palantype <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500"> German steno system based on the Possum Palantype layout with two additional keys. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------------- | ------ | -------- | -------- | -------------------------------------------------------------------------------- | ----------- | ----- | | 🟢 **German Palantype** | | German | Phonetic | [`plover-palantype-german`](https://github.com/percidae/plover_palantype_german) | 85k entries | ### Ruben Moor's German Palantype <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------------- | ---------- | -------- | -------- | ------ | ----------------------------------------------- | --------------------------------- | | 🟡 **German Palantype** | Ruben Moor | German | Phonetic | | 100k entries, with plans to expand to 2 million | [Tutorial](https://palantype.com) | ## Trillo ### Trillo Russian <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500"> A realtime theory for Russian writing based on the Tréal machine. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------------- | ---------------- | -------- | -------- | ---------------------------------------------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------- | | 🟢 **Trillo Russian** | Priscilla Trillo | Russian | Phonetic | [`plover-russian-trillo`](https://github.com/morinted/plover_russian_trillo) | 15k entries | [Textbook](https://github.com/openstenoproject/plover/files/1533593/Russian.Theory.-.ARA.doc.zip) (in mixed English/Russian) | ### Trillo West Slavic <img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------- | ---------------- | --------------------- | -------- | ------ | ---------- | -------------------------------------------------------------------------------------------------- | | 🟢 **Trillo West Slavic** | Priscilla Trillo | Czech, Slovak, Polish | Phonetic | | | [Textbook](https://github.com/Plover-Trillo/WestSlavicStenography/releases/tag/%23SlavicLanguages) | ## Yawei ### Yawei <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500"> Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------- | ------ | ----------------------------------- | ------------------------- | ------ | ---------- | ------------------------------------------------------------------------------- | | 🟡 **Yawei** (亚伟) | | Mandarin (Traditional / Simplified) | Symmetric Toneless Pinyin | | | [Wikipedia](https://zh.wikipedia.org/wiki/%E4%BA%9A%E4%BC%9F%E9%80%9F%E5%BD%95) | ### MaaJik <img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | -------------------- | ------------------------------------------------------------------------------------- | ----------------------- | --------------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----- | | 🟡 **MaaJik** (孖翼) | [Sammi de Guzman](https://github.com/sammdot), [Samuel Lo](https://github.com/vatnid) | Cantonese (Traditional) | Symmetric Toneless Jyutping | [`plover-maajik`](https://github.com/sammdot/plover-maajik) | [314k entries](https://github.com/sammdot/plover-maajik/tree/main/maajik/dictionaries) | ### SanSan <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | -------------------- | --------------------------------------------- | ----------------------- | --------------------------- | ------ | ---------- | ------------------------------------------------------- | | 🟠 **SanSan** (珊々) | [Sammi de Guzman](https://github.com/sammdot) | Cantonese (Traditional) | Symmetric Toneless Jyutping | | | [Steno Explainers](https://steno.sammdot.ca/explainers) | ### TCIM <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | ---------------------- | ------ | ---------------------- | ------------------------- | -------------------------------------------------------- | ---------- | ----- | | 🟡 **TCIM** (千鳥詞注) | [Quisette C](https://github.com/Quisette) | Mandarin (Traditional) | Symmetric Toneless Zhuyin | [`plover-tcim`](https://github.com/Quisette/plover-TCIM) | ## EXun <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500"> EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------ | ------ | --------------------- | ------------------------- | ------ | ---------- | ----- | | 🔴 **EXun** (E 讯) | | Mandarin (Simplified) | Symmetric Toneless Pinyin | ## Suoheng <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500"> Very little is known about the Suoheng system and there are no plans to implement it in Plover. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------------- | ------ | --------------------- | ------------------------- | ------ | ---------- | ----- | | 🔴 **Suoheng** (索恒) | | Mandarin (Simplified) | Symmetric Toneless Pinyin | ## Korean CAS <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500"> The Computer Aided Steno-machine, or CAS, was developed by [Korea Steno](http://www.koreasteno.com/) and features one of the two modern stenography systems for Korean in use today. | | Author | Language | Type | Plugin | Dictionary | Notes | | ---------- | ------ | -------- | ----------------------------------------------- | -------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------ | | 🟡 **CAS** | | Korean | Orthographic (Initial/Medial/Final) with Briefs | [`plover-korean`](https://github.com/nsmarkop/plover_korean) ("Korean Modern C") | | [Theory documentation](https://github.com/nsmarkop/plover_korean/tree/master/plover_korean/system/cas) | ## Korean Sorizava <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500"> Sorizava, developed by [a company of the same name](http://www.sorizava.co.kr/), is the second of the modern stenography systems for Korean in use today and the more recent to have been created. The Sorizava system is not currently under development. There are partial pieces of an implementation in [plover-korean](https://github.com/nsmarkop/plover_korean) but outside of a partial dictionary no theory materials have been obtained to progress further. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------- | ------ | -------- | ----------------------------------------------- | -------------------------------------------------------------------------------- | ---------- | ----- | | 🔴 **Sorizava** | | Korean | Orthographic (Initial/Medial/Final) with Briefs | [`plover-korean`](https://github.com/nsmarkop/plover_korean) ("Korean Modern S") | ## Sokutaipu <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500"> Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------------------- | ------ | -------- | ------------------------------------------- | ------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------- | | 🟢 **Sokutaipu** (ソクタイプ) | | Japanese | Semi-Symmetric 2 Mora + 1 Coda<br>Pure Kana | [`plover-japanese-sokutaipu`](https://github.com/na4zagin3/plover_japanese_sokutaipu) | 365k entries | [Kana table](http://hoangmoc123.d.dooo.jp/sokutaipu.html) | ## StenoWord <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500"> The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels. | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------------------- | ------ | -------- | ------------------------------------ | ----------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------- | | 🟢 **StenoWord** (ステノワード) | | Japanese | Orthographic 1-Syllable<br>Pure Kana | [`plover-japanese-stenoword`](https://github.com/na2hiro/plover-japanese-stenoword) | 2.6k entries | [Kana table](http://hoangmoc123.d.dooo.jp/Stenoword.html) | ## Frag's Japanese System <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------------------- | ------ | -------- | ------------------------------------------------------------ | ------ | ---------- | ----- | | 🟡 **Frag's Japanese System** | Frag | Japanese | Symmetric 2 Mora + 2 Coda<br>Stucture-based kanji conversion | A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke. This is the updated version of the Japanese layout available on TypeyType. ## Hachidori <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500"> Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------------------- | ------------------------------------- | -------- | ------------------------- | ------ | ---------- | ----- | | 🟡 **Hachidori** (はちどり) | [Kaoffie](https://github.com/Kaoffie) | Japanese | Symmetric 2 Mora + 2 Coda | ## Velotype <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500"> The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in [Qweyboard](https://github.com/kqr/qweyboard) by kqr. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------- | ------ | -------------- | ------------ | ---------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------- | | 🟢 **Velotype** | | English, Dutch | Orthographic | [`plover-syllabic-chording`](https://github.com/AlexandraAlter/plover_syllabic_chording) | | [Official website](https://www.velotype.com/en/homepage-eng/) | ## Jackdaw <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500"> An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling. | | Author | Language | Type | Plugin | Dictionary | Notes | | -------------- | ------ | -------- | ------------ | -------------------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------- | | 🟢 **Jackdaw** | | English | Orthographic | [`plover-jackdaw-alt1`](https://github.com/user202729/plover-jackdaw-alt1) | | [Learn Plover! Jackdaw tutorial](https://sites.google.com/site/learnplover/jackdaw) | ## Kinglet <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500"> Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use. | | Author | Language | Type | Plugin | Dictionary | Notes | | -------------- | ------------- | -------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------- | | 🟢 **Kinglet** | Zachary Brown | English | Orthographic | [Plover 2.5.8 modified for Kinglet](https://drive.google.com/file/d/0B9Je8TDYCh1xSVRjVmQ0RUF0ejA/edit?resourcekey=0-6XylRvd298I4w4OVUc-IDg) | | [Learn Plover! Kinglet tutorial](https://sites.google.com/site/learnplover/kinglet-a-letter-based-stenotype-system) | ## Phenrsteno <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500"> Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect. | | Author | Language | Type | Plugin | Dictionary | Notes | | ----------------- | ------------------------------------------------- | -------- | -------- | ------------------------------------------------------------------- | ----------- | -------------------------------------------------------------------- | | 🟢 **Phenrsteno** | [Gregory Chamberlain](https://github.com/chambln) | English | Phonetic | [`plover-phenrsteno`](https://github.com/chambln/plover-phenrsteno) | 15k entries | [Phenrsteno wiki](https://github.com/chambln/plover-phenrsteno/wiki) | ## Plover Czech <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500"> | | Author | Language | Type | Plugin | Dictionary | Notes | | ------------------- | ------------------------------------------------ | -------- | -------- | ----------------------------------------------------------- | ---------- | ----- | | 🟠 **Plover Czech** | [Ashlynn Anderson](https://github.com/lambdadog) | Czech | Phonetic | [`plover-czech`](https://github.com/lambdadog/plover_czech) | ## Especias ### Finnish Especias <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500"> An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------- | ---------------------------------------------------- | -------- | ------------ | -------- | ---------------------------------------------------- | ----- | | 🟢 **Especias** | [Lars Rune Præstmark](https://github.com/SeaLiteral) | Finnish | Orthographic | Built-in | [Dictionary](https://github.com/SeaLiteral/especias) | ### Spanish Especias <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500"> A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals. | | Author | Language | Type | Plugin | Dictionary | Notes | | --------------- | ---------------------------------------------------- | -------- | ------------ | -------- | ---------------------------------------------------- | ----- | | 🟢 **Especias** | [Lars Rune Præstmark](https://github.com/SeaLiteral) | Spanish | Orthographic | Built-in | [Dictionary](https://github.com/SeaLiteral/especias) | </markdown> [[Category:Stenography]] c504ae306b8be41514ee342f074a375cf617e271 List of available steno dictionaries 0 20 65 2024-02-05T16:05:12Z Rice 1 Created page with "<markdown> Plover comes with a free 140,000 word steno dictionary. You can add other dictionaries to Plover, for foreign languages, specialist terminologies, special projects etc. In addition to creating your own personal dictionaries, you can download free, open source steno dictionaries that have been developed by others. You'll find links to many of these below. ## Stenodict You'll find many free, open source steno dictionaries at the [Stenodict](https://www.open..." wikitext text/x-wiki <markdown> Plover comes with a free 140,000 word steno dictionary. You can add other dictionaries to Plover, for foreign languages, specialist terminologies, special projects etc. In addition to creating your own personal dictionaries, you can download free, open source steno dictionaries that have been developed by others. You'll find links to many of these below. ## Stenodict You'll find many free, open source steno dictionaries at the [Stenodict](https://www.openstenoproject.org/stenodict/) website. | Purpose | Author | Description | | ---------------------------------- | ------------------ | ------------------ | |Arrows | Ted Morin | Symbolic arrows → → made easy | | Cross Platform Movement |Ted Morin | Movement and selection across Mac, Windows, and Linux | | Di’s Mac Movement| Diana MacDonald | Extensive Mac movement and selection | | Di’s Vim Commands | Diana MacDonald | Vim and steno were made for each other | | Emoji | Ted Morin | Complete Emoji dictionary 😃 | |General Command Line| Diana MacDonald | Briefs and entries for terminal users | | Left Hand Modifier Keys | Achim Siebert | Left-hand keyboard shortcuts in only two strokes | Left-side Mac Movement | Achim Siebert |Left movement shortcuts with selection for Mac | | Markdown | Ted Morin| Best markup language meets best text entry system | | Pokémon| Ted Morin | First 151 Pokémon written with Plover theory | |Spectacle | Ted Morin | Window management with Spectacle, the free application for OS X | | UK Spellings| Ted Morin | Replace US spellings in Plover's default dictionary | | Unspaced Punctuation| Diana MacDonald| Punctuation with all the spaces suppressed | | Vim Captioning| Mirabai Knight| Useful realtime captioning commands for Vim | ## Stanley Sakai's Steno dictionaries Stanley Sakai's repository on GitHub - [Stanley's Steno Dictionaries](https://github.com/stanographer/steno-dictionaries) | Language | Description | | ---------------------------------- | ------------------ | | braille.json | A starter dictionary for steno-based Braille input. | |smalldict.json | Starter dictionary Mirabai gave Stan as a template (not actively updated or used). | | stan-italiano.json | Dictionary started when doing an Italian class. Not very developed. | | stanespanol.json | Main Spanish steno dictionary. | | stanmain.json | His main English dictionary. | | stanplover.json |Additional entries to correct formatting errors caused by RTF -> JSON conversion. | ## Diana MacDonald's repository [Diana MacDonald's dictionaries](https://github.com/dimonster/plover-dictionaries). These include symbols, currency, smart punctuation, design, and coding dictionaries. ## Other dictionaries * [Emily's Symbol Dictionary](https://github.com/EPLHREU/emily-symbols) and [Emily's Modifier Dictionary](https://github.com/EPLHREU/emily-modifiers). The first allows you to type over 100 symbols with adjustable spacing and capitalization, the second allows you to input arbitrary keyboard shortcuts. * [Jade's Phrasing Dictionary](https://github.com/Jade-GG/plover_phrasing/), a python dictionary phrasing system that lets you write entire phrases such as "we don't really want to" in one stroke. * [JorWat's British Words](https://github.com/JorWat25/dictionaries/blob/main/british%20words.json), a dictionary of words and phrases found on the Wikipedia page, "Glossary of British terms not widely used in the United States". ## Dictionaries for non-English languages | Language | Author | | ---------------------------------- | ------------------ | | [Italian](https://github.com/stanographer/steno-dictionaries/blob/master/stan-italiano.json) | Stanley Sakai | | [Spanish](https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json) |Stanley Sakai| | [French](https://github.com/azizyemloul/plover-france-dict) | Aziz Yemloul | | [Hindi हिन्दी](https://github.com/winstond/hind_plover_dictionary) | winston | > Note: The above foreign language dictionaries are designed to be used with the English steno keyboard layout, but it is possible to customize the steno layout. For dedicated foreign language steno layouts, see the [steno layouts & supported languages page](https://github.com/openstenoproject/plover/wiki/Steno-Layouts-&-Supported-Languages). ## Commercial stenography dictionaries Plover can also work with exported dictionaries from commercial stenography applications such as Eclipse, ProCAT and Case CATalyst. See [Dictionary format](https://github.com/openstenoproject/plover/wiki/Dictionary-Format) page for more information. </markdown> 2aaeb06e2dcea7e5baba7dfe5931010a1259c1c2 92 65 2024-02-05T18:08:04Z Rice 1 wikitext text/x-wiki <markdown> Plover comes with a free 140,000 word steno dictionary. You can add other dictionaries to Plover, for foreign languages, specialist terminologies, special projects etc. In addition to creating your own personal dictionaries, you can download free, open source steno dictionaries that have been developed by others. You'll find links to many of these below. ## Stenodict You'll find many free, open source steno dictionaries at the [Stenodict](https://www.openstenoproject.org/stenodict/) website. | Purpose | Author | Description | | ---------------------------------- | ------------------ | ------------------ | |Arrows | Ted Morin | Symbolic arrows → → made easy | | Cross Platform Movement |Ted Morin | Movement and selection across Mac, Windows, and Linux | | Di’s Mac Movement| Diana MacDonald | Extensive Mac movement and selection | | Di’s Vim Commands | Diana MacDonald | Vim and steno were made for each other | | Emoji | Ted Morin | Complete Emoji dictionary 😃 | |General Command Line| Diana MacDonald | Briefs and entries for terminal users | | Left Hand Modifier Keys | Achim Siebert | Left-hand keyboard shortcuts in only two strokes | Left-side Mac Movement | Achim Siebert |Left movement shortcuts with selection for Mac | | Markdown | Ted Morin| Best markup language meets best text entry system | | Pokémon| Ted Morin | First 151 Pokémon written with Plover theory | |Spectacle | Ted Morin | Window management with Spectacle, the free application for OS X | | UK Spellings| Ted Morin | Replace US spellings in Plover's default dictionary | | Unspaced Punctuation| Diana MacDonald| Punctuation with all the spaces suppressed | | Vim Captioning| Mirabai Knight| Useful realtime captioning commands for Vim | ## Stanley Sakai's Steno dictionaries Stanley Sakai's repository on GitHub - [Stanley's Steno Dictionaries](https://github.com/stanographer/steno-dictionaries) | Language | Description | | ---------------------------------- | ------------------ | | braille.json | A starter dictionary for steno-based Braille input. | |smalldict.json | Starter dictionary Mirabai gave Stan as a template (not actively updated or used). | | stan-italiano.json | Dictionary started when doing an Italian class. Not very developed. | | stanespanol.json | Main Spanish steno dictionary. | | stanmain.json | His main English dictionary. | | stanplover.json |Additional entries to correct formatting errors caused by RTF -> JSON conversion. | ## Diana MacDonald's repository [Diana MacDonald's dictionaries](https://github.com/dimonster/plover-dictionaries). These include symbols, currency, smart punctuation, design, and coding dictionaries. ## Other dictionaries * [Emily's Symbol Dictionary](https://github.com/EPLHREU/emily-symbols) and [Emily's Modifier Dictionary](https://github.com/EPLHREU/emily-modifiers). The first allows you to type over 100 symbols with adjustable spacing and capitalization, the second allows you to input arbitrary keyboard shortcuts. * [Jade's Phrasing Dictionary](https://github.com/Jade-GG/plover_phrasing/), a python dictionary phrasing system that lets you write entire phrases such as "we don't really want to" in one stroke. * [JorWat's British Words](https://github.com/JorWat25/dictionaries/blob/main/british%20words.json), a dictionary of words and phrases found on the Wikipedia page, "Glossary of British terms not widely used in the United States". ## Dictionaries for non-English languages | Language | Author | | ---------------------------------- | ------------------ | | [Italian](https://github.com/stanographer/steno-dictionaries/blob/master/stan-italiano.json) | Stanley Sakai | | [Spanish](https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json) |Stanley Sakai| | [French](https://github.com/azizyemloul/plover-france-dict) | Aziz Yemloul | | [Hindi हिन्दी](https://github.com/winstond/hind_plover_dictionary) | winston | > Note: The above foreign language dictionaries are designed to be used with the English steno keyboard layout, but it is possible to customize the steno layout. For dedicated foreign language steno layouts, see the [steno layouts & supported languages page](https://github.com/openstenoproject/plover/wiki/Steno-Layouts-&-Supported-Languages). ## Commercial stenography dictionaries Plover can also work with exported dictionaries from commercial stenography applications such as Eclipse, ProCAT and Case CATalyst. See [Dictionary format](https://github.com/openstenoproject/plover/wiki/Dictionary-Format) page for more information. </markdown> [[Category:Stenography]] c593662734c0d4d39415a1ee3470d1206ffc4bb8 The steno community 0 21 66 2024-02-05T16:05:40Z Rice 1 Created page with "<markdown> There are many places where you can meet the stenography community. As Plover, we are focused on the Open Steno Project's various outlets, but there are also classic closed steno resources online. ## Open Steno Project - [Plover Discord Server](https://discord.gg/0lQde43a6dGmAMp2) Join the Discord server to chat with other steno-interested individuals. We welcome new people who may have very basic questions, looking for direction and help. We also welcom..." wikitext text/x-wiki <markdown> There are many places where you can meet the stenography community. As Plover, we are focused on the Open Steno Project's various outlets, but there are also classic closed steno resources online. ## Open Steno Project - [Plover Discord Server](https://discord.gg/0lQde43a6dGmAMp2) Join the Discord server to chat with other steno-interested individuals. We welcome new people who may have very basic questions, looking for direction and help. We also welcome curious developers, stenography students, intermediate stenos, and professionals who are curious about Plover and its many uses compared with traditional software. Feel free also to drop by if you are looking to practice or find a new brief. - [Ploversteno Facebook Group](https://www.facebook.com/groups/486062194804842/) - [Ploversteno Google Group](https://groups.google.com/forum/#!forum/ploversteno) The Plover Google Group. Subscribe for updates and conversation. - [GitHub Discussions](https://github.com/openstenoproject/plover/discussions) - Reddit: [Unofficial Plover Subreddit: /r/Plover](http://reddit.com/r/plover) ## General Stenography - Facebook: [Encouraging Court Reporting Students](https://www.facebook.com/groups/ECRSgroup/) - Twitter: There isn't much steno activity on Twitter, but maybe this list and this hashtag will help you get started. + [Steno List](https://twitter.com/morinted/lists/steno) + [#stenolife](https://twitter.com/hashtag/stenolife?src=hash) </markdown> ede41420d0b3ae2250071d80c7cb01b738873af3 Setting up a Stentura 400SRT with Plover 0 22 67 2024-02-05T16:07:03Z Rice 1 Created page with "<nowiki>##</nowiki> What you need 1. Stentura Stenograph machine        This was done with a **Stentura 400SRT**, but it should work with others versions (e.g. 200SRT), as long as it is the electric version. 1. A serial cable.    There are a couple options here:    + **Option 1: Stenograph realtime cable kit**        The one that usually comes with the Stentura comes in three parts. A grey connector, a black connector, and a cable. **There's nothing sp..." wikitext text/x-wiki <nowiki>##</nowiki> What you need 1. Stentura Stenograph machine        This was done with a **Stentura 400SRT**, but it should work with others versions (e.g. 200SRT), as long as it is the electric version. 1. A serial cable.    There are a couple options here:    + **Option 1: Stenograph realtime cable kit**        The one that usually comes with the Stentura comes in three parts. A grey connector, a black connector, and a cable. **There's nothing special about this cable**, even though they try to pretend there is. So if you don't already have it, don't spend the amounts of money they are charging to get one. **Use Option 2 instead.**    + **Option 2: Any RS232 (Also called DB9) male to female cross over-cable**        This is also known as Null Modem. This is a serial cable that will work with the machine.        Here are a few options from Amazon:        - [StarTech SCNM9FM2MBK](<nowiki>https://www.amazon.com/StarTech-com-RS232-Serial-Female-SCNM9FM2MBK/dp/B00CEMGMMM/</nowiki>)        - [Serial Modem Cable Female RS232](<nowiki>https://www.amazon.com/Serial-Modem-Cable-Female-RS232/dp/B0026KE4CM/</nowiki>)        - [C2G Female RS322 Adapter](<nowiki>https://www.amazon.com/C2G-Cables-Go-Female-Adapter/dp/B000067RW2/</nowiki>) — No cable, so very short. Useful to minimize the amount of cords        - [Cables Online Transfer Adapter](<nowiki>https://www.amazon.com/CablesOnline-Slimline-Transfer-Adapter-AD-N04M-2/dp/B00HGIRU3O/</nowiki>) — Even shorter 1. USB to serial adapter    If you intend to connect to a PC serial port directly, you are already all set with the machine and serial cable. If you want to connect via USB, then you'll also need a USB to serial adapter. If you're not sure if you'll need it, then you probably need it.    * Serial (Female connector) to USB converter. Once again, here are some options:        + [Sabrent Serial RS232 Converter](<nowiki>https://www.amazon.com/Sabrent-Serial-RS-232-Converter-CB-DB9P/dp/B00IDSM6BW/</nowiki>)        + [Tera Grand Premium USB to serial adapter](<nowiki>https://www.amazon.com/Tera-Grand-Premium-Adapter-Supports/dp/B00BUZ0K68/</nowiki>) — No cable, so very short        + [StarTech DCE Adapter Cable with FTDI Null Modem model](<nowiki>https://www.amazon.com/gp/product/B008634VJY/</nowiki>) - Requires a serial gender changer    Most of these USB to serial adapters come with driver files that you have to install before the adapter works. After installing the driver, make sure you reboot your computer or you probably won't be able to connect to your machine. Additionally, if you have a new computer with USB 3.0 ports many drivers will not support it and you can work around this issue by getting a USB 2.0 hub to connect through as a gateway. <nowiki>**</nowiki>It's important that there is a cross-over cable at some point of the connection, and only one. The Stenograph cable has one built in.** If you purchased any of the "option 2" cables, those are also cross-over cables and will work. The terms "RS232" and "DB9" mean the same thing and can be used interchangeably. The same goes for "Cross-over" and "Null Modem" <nowiki>##</nowiki> Putting it all together If you have a **USB port:** - Computer USB port → USB to serial adapter → serial cross-over cable → steno machine If you have a **serial port** on your computer: - Computer serial port → serial cross-over cable → steno machine <nowiki>##</nowiki> Connecting to Plover <nowiki>###</nowiki> Turning on your Stenograph Machine Turn on the Stenograph with the switch on the face plate. The green light indicates that the machine is powered on. The red light signifies connection with a computer. If the red light is blinking, or the green and red are blinking back and forth, don't worry, it'll still work. If you want to stop the blinking, there are some instructions later. <nowiki>###</nowiki> Configuring Plover Next, we can connect Plover to use the device. In Plover, click **Configure**. In the Configuration window, click **Machine**. In the "machine" dropdown, select **Stentura**. Click the **Scan** button, next to **Port**. This will refresh the Port list. You'll need to find the correct port number. If there is only one, it's probably the one you want. If there is more that one, you can try a few until you find the one that works. If you're using a USB device, it's likely to be the larger number. If you're connecting to the serial port directly, it'll probably be the first one. When using the USB converter, the other settings should stay at the defaults. Which are 9600, 8, N, 1, no flow control. When connecting with a serial port, it is recommended to use a baud rate of 2400. (Note: some users have found that they need to use 2400 as the baud rate even when using a USB converter.) Press `OK` to get out of the Configure menu, until you get back to the main Plover screen. Click the refresh button, and it should say `Stentura: connected`. A successful connection is also indicated by the red light on the Stentura turning on -- it will not come on until Plover connects. If the connection is not established, then something went wrong, try pressing the refresh button in the Plover window and if that doesn't work double check all the steps above. That's it. You should get output when typing. <nowiki>##</nowiki> Stop the blinking The lights blink when the internal memory is full, or if the battery is drained, or both. if the green light is blinking, then the battery is drained. To charge, leave it plugged in and *turned on*. A good battery will charge in about 8 hours. It's possible that the battery is dead. If you bought the unit second hand and a few years old, then it's very likely to be dead. If that's the case, the light will never stop blinking, no matter how much you try charging it. If you remove the battery, the light will stop blinking and will continue to work with the power cable. The dead battery is useless anyway, so throw it away and now your unit is lighter. (Or buy a new one <nowiki>http://www.stenoworks.com/writer-accessories/writer-batteries/</nowiki> ) If the red light is blinking, then the internal memory is full or close to full. To clear it: <nowiki>*</nowiki> turn the Stenograph off <nowiki>*</nowiki> while holding STK, turn the machine back on. <nowiki>*</nowiki> the lights should be both blinking back and forth. If not, try again from the start. <nowiki>*</nowiki> press KWR to clear the memory, or TPH if you change your mind. The memory will get full regularly so you'll have to do this occasionally. So remember it! <nowiki>##</nowiki> Manual Valentin from the [Plover Forums](<nowiki>https://groups.google.com/d/msg/ploversteno/dhLSXsPdGYY/jZQlVdcIAQAJ</nowiki>) has kindly scanned the entire manual. It is very useful to read, and you can get it [here](<nowiki>https://0au.de/~apo/stentura_200_400_srt_manual.pdf</nowiki>). <nowiki>##</nowiki> Resurrect a dead Stentura 200SRT/400SRT If the electronics in your 200SRT/400SRT aren't working, you may be interested in replacing them altogether with an Arduino controller. The machine will then be powered over USB through the Arduino -- don't plug in its own power supply lest you destroy your Arduino. The electric paper tape advance will not work; if you want paper tape you'll have to put the mechanism in manual mode (see the instructions) which has a slightly heavier touch, but you don't need paper tape for plover. Likewise, it will no longer have the ability to record strokes for later playback when not connected to the computer. It is a pretty simple task requiring soldering 6 wires to the I/O Expander board that is located on top of the steno mechanism, just under the cover that opens. There's a [video](<nowiki>https://youtu.be/ccxri4A-SbM</nowiki>) and an [Arduino sketch](<nowiki>https://github.com/balthamos/steno-arduino</nowiki>). There is a debouncing delay constant in the sketch that may need to be increased if your machine produces multiple outputs in plover for a single stroke. Note: this relies on the electronics on the I/O Expander board still working -- it is a collection of shift register ICs and seems likely to work even if the main electronics board at the bottom of the machine is no longer working. It would be a bigger job to wire the Arduino directly to all 24 switches but it could be done if the I/O Expander electronics did not work. See [this thread](<nowiki>https://groups.google.com/forum/#!topic/ploversteno/l6LDaf855hg</nowiki>) for pictures of a rebuild using a Raspberry Pi that interacts directly with the switches. 3998c92f35aa116c6af1d5e73068a07308206761 68 67 2024-02-05T16:07:17Z Rice 1 wikitext text/x-wiki <markdown> ## What you need 1. Stentura Stenograph machine This was done with a **Stentura 400SRT**, but it should work with others versions (e.g. 200SRT), as long as it is the electric version. 1. A serial cable. There are a couple options here: + **Option 1: Stenograph realtime cable kit** The one that usually comes with the Stentura comes in three parts. A grey connector, a black connector, and a cable. **There's nothing special about this cable**, even though they try to pretend there is. So if you don't already have it, don't spend the amounts of money they are charging to get one. **Use Option 2 instead.** + **Option 2: Any RS232 (Also called DB9) male to female cross over-cable** This is also known as Null Modem. This is a serial cable that will work with the machine. Here are a few options from Amazon: - [StarTech SCNM9FM2MBK](https://www.amazon.com/StarTech-com-RS232-Serial-Female-SCNM9FM2MBK/dp/B00CEMGMMM/) - [Serial Modem Cable Female RS232](https://www.amazon.com/Serial-Modem-Cable-Female-RS232/dp/B0026KE4CM/) - [C2G Female RS322 Adapter](https://www.amazon.com/C2G-Cables-Go-Female-Adapter/dp/B000067RW2/) — No cable, so very short. Useful to minimize the amount of cords - [Cables Online Transfer Adapter](https://www.amazon.com/CablesOnline-Slimline-Transfer-Adapter-AD-N04M-2/dp/B00HGIRU3O/) — Even shorter 1. USB to serial adapter If you intend to connect to a PC serial port directly, you are already all set with the machine and serial cable. If you want to connect via USB, then you'll also need a USB to serial adapter. If you're not sure if you'll need it, then you probably need it. * Serial (Female connector) to USB converter. Once again, here are some options: + [Sabrent Serial RS232 Converter](https://www.amazon.com/Sabrent-Serial-RS-232-Converter-CB-DB9P/dp/B00IDSM6BW/) + [Tera Grand Premium USB to serial adapter](https://www.amazon.com/Tera-Grand-Premium-Adapter-Supports/dp/B00BUZ0K68/) — No cable, so very short + [StarTech DCE Adapter Cable with FTDI Null Modem model](https://www.amazon.com/gp/product/B008634VJY/) - Requires a serial gender changer Most of these USB to serial adapters come with driver files that you have to install before the adapter works. After installing the driver, make sure you reboot your computer or you probably won't be able to connect to your machine. Additionally, if you have a new computer with USB 3.0 ports many drivers will not support it and you can work around this issue by getting a USB 2.0 hub to connect through as a gateway. **It's important that there is a cross-over cable at some point of the connection, and only one. The Stenograph cable has one built in.** If you purchased any of the "option 2" cables, those are also cross-over cables and will work. The terms "RS232" and "DB9" mean the same thing and can be used interchangeably. The same goes for "Cross-over" and "Null Modem" ## Putting it all together If you have a **USB port:** - Computer USB port → USB to serial adapter → serial cross-over cable → steno machine If you have a **serial port** on your computer: - Computer serial port → serial cross-over cable → steno machine ## Connecting to Plover ### Turning on your Stenograph Machine Turn on the Stenograph with the switch on the face plate. The green light indicates that the machine is powered on. The red light signifies connection with a computer. If the red light is blinking, or the green and red are blinking back and forth, don't worry, it'll still work. If you want to stop the blinking, there are some instructions later. ### Configuring Plover Next, we can connect Plover to use the device. In Plover, click **Configure**. In the Configuration window, click **Machine**. In the "machine" dropdown, select **Stentura**. Click the **Scan** button, next to **Port**. This will refresh the Port list. You'll need to find the correct port number. If there is only one, it's probably the one you want. If there is more that one, you can try a few until you find the one that works. If you're using a USB device, it's likely to be the larger number. If you're connecting to the serial port directly, it'll probably be the first one. When using the USB converter, the other settings should stay at the defaults. Which are 9600, 8, N, 1, no flow control. When connecting with a serial port, it is recommended to use a baud rate of 2400. (Note: some users have found that they need to use 2400 as the baud rate even when using a USB converter.) Press `OK` to get out of the Configure menu, until you get back to the main Plover screen. Click the refresh button, and it should say `Stentura: connected`. A successful connection is also indicated by the red light on the Stentura turning on -- it will not come on until Plover connects. If the connection is not established, then something went wrong, try pressing the refresh button in the Plover window and if that doesn't work double check all the steps above. That's it. You should get output when typing. ## Stop the blinking The lights blink when the internal memory is full, or if the battery is drained, or both. if the green light is blinking, then the battery is drained. To charge, leave it plugged in and *turned on*. A good battery will charge in about 8 hours. It's possible that the battery is dead. If you bought the unit second hand and a few years old, then it's very likely to be dead. If that's the case, the light will never stop blinking, no matter how much you try charging it. If you remove the battery, the light will stop blinking and will continue to work with the power cable. The dead battery is useless anyway, so throw it away and now your unit is lighter. (Or buy a new one http://www.stenoworks.com/writer-accessories/writer-batteries/ ) If the red light is blinking, then the internal memory is full or close to full. To clear it: * turn the Stenograph off * while holding STK, turn the machine back on. * the lights should be both blinking back and forth. If not, try again from the start. * press KWR to clear the memory, or TPH if you change your mind. The memory will get full regularly so you'll have to do this occasionally. So remember it! ## Manual Valentin from the [Plover Forums](https://groups.google.com/d/msg/ploversteno/dhLSXsPdGYY/jZQlVdcIAQAJ) has kindly scanned the entire manual. It is very useful to read, and you can get it [here](https://0au.de/~apo/stentura_200_400_srt_manual.pdf). ## Resurrect a dead Stentura 200SRT/400SRT If the electronics in your 200SRT/400SRT aren't working, you may be interested in replacing them altogether with an Arduino controller. The machine will then be powered over USB through the Arduino -- don't plug in its own power supply lest you destroy your Arduino. The electric paper tape advance will not work; if you want paper tape you'll have to put the mechanism in manual mode (see the instructions) which has a slightly heavier touch, but you don't need paper tape for plover. Likewise, it will no longer have the ability to record strokes for later playback when not connected to the computer. It is a pretty simple task requiring soldering 6 wires to the I/O Expander board that is located on top of the steno mechanism, just under the cover that opens. There's a [video](https://youtu.be/ccxri4A-SbM) and an [Arduino sketch](https://github.com/balthamos/steno-arduino). There is a debouncing delay constant in the sketch that may need to be increased if your machine produces multiple outputs in plover for a single stroke. Note: this relies on the electronics on the I/O Expander board still working -- it is a collection of shift register ICs and seems likely to work even if the main electronics board at the bottom of the machine is no longer working. It would be a bigger job to wire the Arduino directly to all 24 switches but it could be done if the I/O Expander electronics did not work. See [this thread](https://groups.google.com/forum/#!topic/ploversteno/l6LDaf855hg) for pictures of a rebuild using a Raspberry Pi that interacts directly with the switches. </markdown> d7cdbef6f2777bf5d885862ccf9c910368b754fe Stenotype Mnemonics for Beginners (English) 0 23 69 2024-02-05T16:08:15Z Rice 1 Created page with "<markdown> ## Learning Steno Sometimes the first steps of learning stenotype is an especially steep learning curve -- much like learning the alphabet and basic sounds of a new language. This page presents some mnemonic devices to help ease this initial learning process. These mnemonics are for use along with a steno tutorial, such as Qwertysteno, LearnPlover, Steno101, etc. These and more are available here: http://stenoknight.com/wiki/Practice ## Single-stroke consonan..." wikitext text/x-wiki <markdown> ## Learning Steno Sometimes the first steps of learning stenotype is an especially steep learning curve -- much like learning the alphabet and basic sounds of a new language. This page presents some mnemonic devices to help ease this initial learning process. These mnemonics are for use along with a steno tutorial, such as Qwertysteno, LearnPlover, Steno101, etc. These and more are available here: http://stenoknight.com/wiki/Practice ## Single-stroke consonants and single-stroke vowels ![source: qwertysteno.org](https://www.dropbox.com/s/yhlwbrtwsozxbpd/steno-keyboard2.png?raw=1) * Verbal mnemonic for consonants in steno order: <br> "STicK PoWer HeRe FoR PuB LoGo: 'ToeS DoZe'" <br> * Verbal mnemonic for single-key vowels <br> "The bAt-bOt bEt her bUtt that she could put cat-boy behind bars..." ## Compound-stroke Mnemonic Images ![](https://www.dropbox.com/s/cvzb7c0sv5893jd/024_PloverMnemonicConsonants.png?raw=1) Download [hi-res version](https://www.dropbox.com/s/cvzb7c0sv5893jd/024_PloverMnemonicConsonants.png?dl=0) ![](https://www.dropbox.com/s/n5c6j3hozbittvr/005_PloverMnemonicVowels.png?raw=1) Download [hi-res version](https://www.dropbox.com/s/n5c6j3hozbittvr/005_PloverMnemonicVowels.png?dl=0) ## Mnemonic Image Keys: <br> * Consonants: **sh**oe **z**ebra **v**ote **j**avelin **n**ose **th**ought **f**eather **d**ucky **g**ift **y**ellowbrickroad **ch**op **m**achinegun **b**ubble **l**ion **p**ump too**th** yo**lk** li**nk** pat**ch** cur**v**e cru**nch** / **-lch** ca**sh** paw**n** ko**ng** pu**mp** ha**m** ba**dge** (**j**) soc**k** reda**ction** (**kshun**) bu**lge** (**lj**) lo**tion** (**shun**) * Vowels: <br> moon - AO - identifies homophones spelled "oo" or "oa" <br> mitt - EU<br> ape-baby - AEU <br> rowing-boat - OE <br> pea - AE - identifies homophones spelled "ea" or "ae" <br> wheel - AOE <br> oil - OEU - often "wildcard" for making funky briefs <br> saw - AU <br> soup - AOU <br> pow - OU <br> eye - AOEU <br> ## Notes: * Please feel welcome to update this wiki page's structure to include additional mnemonic models if desired * Layered "xcf" image files editable in [GIMP](https://www.gimp.org/) are available [here](https://www.dropbox.com/sh/h1ytoo3kydwi8hn/AABXtMzt2gH3TZlhCrTbjeB_a?dl=0) if you want to put in some of your own mnemonics. * The best mnemonics are always the ones you make up yourself. So feel encouraged to make your own mnemonic sketches, or modify the xcf file with your favorite sound/image associations. * Info about mnemonic methods: [ArtOfMemory](http://artofmemory.com/) , [JoshFoerTEDTalk](https://www.ted.com/talks/joshua_foer_feats_of_memory_anyone_can_do?language=en), [WorldMemoryChampionships](https://en.wikipedia.org/wiki/World_Memory_Championships) , * For I guess some of the source images included in the mnemonic montages are under education etc, "[fair use](https://en.wikipedia.org/wiki/Fair_use)". But other than that, feel free to use and abuse. Public domain for any of my contributions! :) </markdown> da5e9208099aee74436f4afa9dfbc23bc5ba18c1 MediaWiki:Common.css 8 6 70 39 2024-02-05T16:08:54Z Rice 1 css text/css /* CSS placed here will be applied to all skins */ img{ max-width: 100%; } 34511e392de1a2c3961ac9c105581826c1bb3ab8 Plover Wiki 0 3 71 51 2024-02-05T16:10:30Z Rice 1 wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|400x400px|center]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 5d0db791b4b03d24249215569e4cf9d34e6baff1 72 71 2024-02-05T16:10:54Z Rice 1 wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|185x185px|left]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 128271f9bf7363ecce4273492808dba6df6cf26d 73 72 2024-02-05T16:11:33Z Rice 1 wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|369x369px|left]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 95043e9c7981692032a74426fc6332cc1a7f0eab 94 73 2024-02-05T19:13:52Z Rice 1 Rice moved page [[Plover]] to [[Plover Wiki]] wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|369x369px|left]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. 95043e9c7981692032a74426fc6332cc1a7f0eab 96 94 2024-02-05T19:33:43Z Rice 1 wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|369x369px|left]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome. Edit permissions are restricted to only accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] faeca460a85e203680f0885ba29a25ed519d9b5d 97 96 2024-02-05T19:33:56Z Rice 1 wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|327x327px|left]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome. Edit permissions are restricted to only accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] 2297d4c2196e1540b6a369482ff0a4d08f4d7fe2 98 97 2024-02-05T19:35:31Z Rice 1 wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|left]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome. Edit permissions are restricted to only accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] b5c3de76cb5eeb2f091e197a2323bc7a295b24fd 99 98 2024-02-05T21:14:53Z Rice 1 wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|left]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome. Edit permissions are restricted to only accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. 86732b34643a33bc05bb119fa070f13d9b29e876 100 99 2024-02-05T21:16:14Z Rice 1 wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|left]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to only accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. 2bed5e679fb5de01b5535372f4de81c809a66090 Installation Guide 0 8 74 52 2024-02-05T16:36:54Z Rice 1 wikitext text/x-wiki <markdown> **Table of Contents** - [Install Plover on Windows](#install-plover-on-windows) - [Install Plover on Mac](#install-plover-on-mac) - [Install Plover on Linux](#install-plover-on-linux) - [Troubleshooting](#troubleshooting) - [Setting up my machine](#setting-up-my-machine) - [Other installation methods](#other-installation-methods) - [For developers: running from source](#for-developers-running-from-source) # Install Plover on Windows Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. ## [Download the Windows installer here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe) Run the installer and follow the onscreen instructions. You may need to [grant permissions for the app to bypass Windows Defender SmartScreen.](https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10) ## [Download the Windows portable ZIP here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip) Extract the entire folder to the location that you'd like to run Plover from. Inside the folder, run `plover.exe` to start Plover. -------------------- # Install Plover on Mac ## [Download Plover for Mac here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg) 1. Open the `.dmg` file. 1. In the mounted disk, drag the `Plover.app` to your `Applications` folder. 1. Open the Applications folder, and [follow the guide to launch a program from an unidentified developer.](https://support.apple.com/en-ca/guide/mac-help/mh40616/mac) 1. Open `System Preferences > Security & Privacy > Privacy > Accessibility`. 1. Click the `+` Button, and go to your applications and select `Plover.app`. Plover is set up! You can run Plover like you would any other application. > **Note**: Other "keyboard helper"-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. ### If you had previously uninstalled Plover or upgraded your system Repeat step 4, and remove Plover from the list. **Do not just uncheck Plover; you will have to explicitly remove Plover by using the `-` button**. Once Plover has been removed, readd `Plover.app` by repeating step 5. -------------------- # Install Plover on Linux Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. Please note that **Plover is not officially supported on systems running Wayland at this moment**. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [this one](https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS) to determine if you're running Wayland and how to switch. ## [Download the Plover AppImage here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage) To use it: 1. Download it 1. [Make it executable](http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80) 1. Launch it like a standard executable ## Allow Access to Serial Ports All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: ``` stat -c "%G" /dev/ttyACM* ``` You should see `dialout` or `uucp` depending on your distro. If the above command results in a "file not found" error, try replacing `ACM` with `USB` and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: ``` sudo usermod -aG <group> $USER ``` Replace `<group>` with the output of the previous command. **Once you have added yourself to the right group, restart your computer.** ## Error relating to xcb You may run into the following error when trying to run Plover: > Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem. Ensure that the following packages are installed: - `libxcb` - `xcb-util` - `qt5-qtstyleplugins` - `libxcb-cursor0` Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: ``` ./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2' ``` # Setting up my machine Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. Please check the [Supported Hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware) to find instructions specific to your machine. # Other installation methods ## Other releases You can browse various other releases of Plover by scrolling through the [releases page](https://github.com/openstenoproject/plover/releases). To download a release, click on "Assets" and download the applicable file for your operating system. ![Downloading releases](https://github.com/openstenoproject/plover/assets/52895314/7e886397-e35d-41f9-b23b-2e7d22a658e9) ## Homebrew Cask If you have [**Homebrew Cask**](https://caskroom.github.io/) installed on your system, you can run `brew install --cask plover` at the command-line. ## Arch AUR package Two AUR packages are provided: 1. [plover](https://aur.archlinux.org/packages/plover/) for the latest stable release 2. and [plover-git](https://aur.archlinux.org/packages/plover-git/) for the current `master` Note: the plugins manager is not part of `plover-git`, and is available as a [separate package](https://aur.archlinux.org/packages/plover_plugins_manager/). ## Gentoo git ebuild Currently, only a git ebuild for the `master` branch is provided. [Personal overlay.](https://framagit.org/3/ebuilds) (out of date dependencies) ## Void Linux package Plover is packaged in the Void Linux repositories under the package name `plover`. Note: the plugins manager has not been packaged yet. # Troubleshooting If you get stuck, you can: - Check the [troubleshooting guide.](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues) - Search for your problem in our [issue tracker](https://github.com/openstenoproject/plover/issues) and our [Discussions forum.](https://github.com/openstenoproject/plover/discussions) - If you can't find your particular problem, [open a support request](https://github.com/openstenoproject/plover/issues/new/choose) or [start a Discussion.](https://github.com/openstenoproject/plover/discussions/new) We also have a [Plover Discord Server](https://discord.gg/0lQde43a6dGmAMp2), the [steno community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), and a [GitHub Discussions forum](https://github.com/openstenoproject/plover/discussions) if you have a general idea or discussion topic. # For developers: running from source If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: - [`plover/windows`](https://github.com/openstenoproject/plover/tree/master/windows) - [`plover/linux`](https://github.com/openstenoproject/plover/tree/master/linux) - [`plover/osx`](https://github.com/openstenoproject/plover/tree/master/osx) </markdown> ac6d0ee4b7daaf88bfd092d34c6d6e19e3d06cd5 79 74 2024-02-05T17:59:44Z Rice 1 wikitext text/x-wiki <markdown> **Table of Contents** - [Install Plover on Windows](#install-plover-on-windows) - [Install Plover on Mac](#install-plover-on-mac) - [Install Plover on Linux](#install-plover-on-linux) - [Troubleshooting](#troubleshooting) - [Setting up my machine](#setting-up-my-machine) - [Other installation methods](#other-installation-methods) - [For developers: running from source](#for-developers-running-from-source) # Install Plover on Windows Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. ## [Download the Windows installer here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe) Run the installer and follow the onscreen instructions. You may need to [grant permissions for the app to bypass Windows Defender SmartScreen.](https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10) ## [Download the Windows portable ZIP here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip) Extract the entire folder to the location that you'd like to run Plover from. Inside the folder, run `plover.exe` to start Plover. -------------------- # Install Plover on Mac ## [Download Plover for Mac here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg) 1. Open the `.dmg` file. 1. In the mounted disk, drag the `Plover.app` to your `Applications` folder. 1. Open the Applications folder, and [follow the guide to launch a program from an unidentified developer.](https://support.apple.com/en-ca/guide/mac-help/mh40616/mac) 1. Open `System Preferences > Security & Privacy > Privacy > Accessibility`. 1. Click the `+` Button, and go to your applications and select `Plover.app`. Plover is set up! You can run Plover like you would any other application. > **Note**: Other "keyboard helper"-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. ### If you had previously uninstalled Plover or upgraded your system Repeat step 4, and remove Plover from the list. **Do not just uncheck Plover; you will have to explicitly remove Plover by using the `-` button**. Once Plover has been removed, readd `Plover.app` by repeating step 5. -------------------- # Install Plover on Linux Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. Please note that **Plover is not officially supported on systems running Wayland at this moment**. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [this one](https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS) to determine if you're running Wayland and how to switch. ## [Download the Plover AppImage here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage) To use it: 1. Download it 1. [Make it executable](http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80) 1. Launch it like a standard executable ## Allow Access to Serial Ports All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: ``` stat -c "%G" /dev/ttyACM* ``` You should see `dialout` or `uucp` depending on your distro. If the above command results in a "file not found" error, try replacing `ACM` with `USB` and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: ``` sudo usermod -aG <group> $USER ``` Replace `<group>` with the output of the previous command. **Once you have added yourself to the right group, restart your computer.** ## Error relating to xcb You may run into the following error when trying to run Plover: > Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem. Ensure that the following packages are installed: - `libxcb` - `xcb-util` - `qt5-qtstyleplugins` - `libxcb-cursor0` Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: ``` ./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2' ``` # Setting up my machine Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. Please check the [Supported Hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware) to find instructions specific to your machine. # Other installation methods ## Other releases You can browse various other releases of Plover by scrolling through the [releases page](https://github.com/openstenoproject/plover/releases). To download a release, click on "Assets" and download the applicable file for your operating system. ![Downloading releases](https://github.com/openstenoproject/plover/assets/52895314/7e886397-e35d-41f9-b23b-2e7d22a658e9) ## Homebrew Cask If you have [**Homebrew Cask**](https://caskroom.github.io/) installed on your system, you can run `brew install --cask plover` at the command-line. ## Arch AUR package Two AUR packages are provided: 1. [plover](https://aur.archlinux.org/packages/plover/) for the latest stable release 2. and [plover-git](https://aur.archlinux.org/packages/plover-git/) for the current `master` Note: the plugins manager is not part of `plover-git`, and is available as a [separate package](https://aur.archlinux.org/packages/plover_plugins_manager/). ## Gentoo git ebuild Currently, only a git ebuild for the `master` branch is provided. [Personal overlay.](https://framagit.org/3/ebuilds) (out of date dependencies) ## Void Linux package Plover is packaged in the Void Linux repositories under the package name `plover`. Note: the plugins manager has not been packaged yet. # Troubleshooting If you get stuck, you can: - Check the [troubleshooting guide.](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues) - Search for your problem in our [issue tracker](https://github.com/openstenoproject/plover/issues) and our [Discussions forum.](https://github.com/openstenoproject/plover/discussions) - If you can't find your particular problem, [open a support request](https://github.com/openstenoproject/plover/issues/new/choose) or [start a Discussion.](https://github.com/openstenoproject/plover/discussions/new) We also have a [Plover Discord Server](https://discord.gg/0lQde43a6dGmAMp2), the [steno community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), and a [GitHub Discussions forum](https://github.com/openstenoproject/plover/discussions) if you have a general idea or discussion topic. # For developers: running from source If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: - [`plover/windows`](https://github.com/openstenoproject/plover/tree/master/windows) - [`plover/linux`](https://github.com/openstenoproject/plover/tree/master/linux) - [`plover/osx`](https://github.com/openstenoproject/plover/tree/master/osx) </markdown> [[Category:Plover]] 87b1ee3a4390d9ce6a5ea31373c8f607d0650c99 106 79 2024-02-05T22:07:05Z Astra 8 Initial markdown ~> mediawiki conversion wikitext text/x-wiki '''Table of Contents''' * [[#install-plover-on-windows|Install Plover on Windows]] * [[#install-plover-on-mac|Install Plover on Mac]] * [[#install-plover-on-linux|Install Plover on Linux]] * [[#troubleshooting|Troubleshooting]] * [[#setting-up-my-machine|Setting up my machine]] * [[#other-installation-methods|Other installation methods]] * [[#for-developers-running-from-source|For developers: running from source]] <span id="install-plover-on-windows"></span> = Install Plover on Windows = Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. <span id="download-the-windows-installer-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] == Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.] <span id="download-the-windows-portable-zip-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] == Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover. ----- <span id="install-plover-on-mac"></span> = Install Plover on Mac = <span id="download-plover-for-mac-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] == # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.] # Open <code>System Preferences &gt; Security &amp; Privacy &gt; Privacy &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. Plover is set up! You can run Plover like you would any other application. <blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote> <span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span> === If you had previously uninstalled Plover or upgraded your system === Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, readd <code>Plover.app</code> by repeating step 5. ----- <span id="install-plover-on-linux"></span> = Install Plover on Linux = Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch. <span id="download-the-plover-appimage-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] == To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable <span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.''' <span id="error-relating-to-xcb"></span> == Error relating to xcb == You may run into the following error when trying to run Plover: <blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem. </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> = Setting up my machine = Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine. <span id="other-installation-methods"></span> = Other installation methods = <span id="other-releases"></span> == Other releases == You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. <div class="figure"> [[File:https://github.com/openstenoproject/plover/assets/52895314/7e886397-e35d-41f9-b23b-2e7d22a658e9|Downloading releases]] </div> <span id="homebrew-cask"></span> == Homebrew Cask == If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line. <span id="arch-aur-package"></span> == Arch AUR package == Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package]. <span id="gentoo-git-ebuild"></span> == Gentoo git ebuild == Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies) <span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet. <span id="troubleshooting"></span> = Troubleshooting = If you get stuck, you can: * Check the [https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues troubleshooting guide.] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic. <span id="for-developers-running-from-source"></span> = For developers: running from source = If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] 27449225b67b778923ffad7f7a5cca50a15d8175 MediaWiki:Sidebar 8 5 75 34 2024-02-05T16:39:11Z Rice 1 wikitext text/x-wiki * Plover ** mainpage|Main Page ** https://www.openstenoproject.org/plover|Plover Website (External) ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide ** Supported_Hardware|Supported Hardware ** Dictionary_Format|Dictionary Format ** Built-in_Tools|Built-in Tools ** Open_Steno_Project_Timeline|Open Steno Project Timeline ** Troubleshooting_Issues|Troubleshooting Issues * Stenography ** FAQ|FAQ ** Glossary|Glossary ** Learning_Stenography|Learning Stenography ** Brief_Ideas|Brief Ideas ** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages ** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries * Miscellaneous ** The_Steno_Community|The Steno Community ** https://www.openstenoproject.org/demo/|In-Browser Demo ** Other_Pages|Other Pages * MediaWiki ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES cd8c3cf2c4923c5cf895ea69695973b63d7b6a02 Other pages 0 24 76 2024-02-05T16:40:08Z Rice 1 Created page with "<markdown> - [How to setup and use Plover with a Stentura 400SRT](https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT) - [Open Steno Project Timeline](https://github.com/openstenoproject/plover/wiki/Open-Steno-Project-Timeline) - [Stenotype Mnemonics for Beginners (English)](https://github.com/openstenoproject/plover/wiki/Stenotype-Mnemonics-for-Beginners-(English)) </markdown>" wikitext text/x-wiki <markdown> - [How to setup and use Plover with a Stentura 400SRT](https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT) - [Open Steno Project Timeline](https://github.com/openstenoproject/plover/wiki/Open-Steno-Project-Timeline) - [Stenotype Mnemonics for Beginners (English)](https://github.com/openstenoproject/plover/wiki/Stenotype-Mnemonics-for-Beginners-(English)) </markdown> ec57d0719f1f7e36a78fbc7aa2a091125ed5ad52 77 76 2024-02-05T16:42:48Z Rice 1 wikitext text/x-wiki * [[How to setup and use Plover with a Stentura 400SRT]] * [[Open Steno Project Timeline]] * [[Stenotype Mnemonics for Beginners (English)]] 94909587d23c80d83463f16ac5cf6c196fc90aa8 Beginner's Guide 0 4 78 41 2024-02-05T17:58:22Z Rice 1 wikitext text/x-wiki __TOC__ <markdown> This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge. ## Overview The main steps are: 1. [Download and install the Plover application.](#markdown_Download_and_Install_Plover) 1. [Connect a compatible keyboard or stenography (steno) machine.](#markdown_Connect_a_compatible_keyboard_or_stenography_machine) 1. [Confirm it's working.](#markdown_Confirm_it's_working) 1. [Practice and learn stenography using Plover.](#markdown_Practice_and_learn) ## Download and Install Plover Plover works on **Windows, Mac, and Linux**. * [Download and install Plover with the Installation Guide 🚀](/index.php?title=Installation_Guide) * If you get stuck, see the [troubleshooting guide](/index.php?title=Troubleshooting:_Common_Issues). ## Connect a compatible keyboard or stenography machine Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard) * [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard) * [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use) * [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover) * [Use a professional stenography machine](#use-a-professional-stenography-machine) ### Use a standard QWERTY keyboard If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. #### Arpeggiate With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. ![Arpeggiate gif](https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif) To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done. ![arpeggiate option](https://github.com/openstenoproject/plover/assets/52895314/5467e672-7306-43d8-83fb-6f771a5802ef) #### Rolling your strokes By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. ![](https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif) Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working). ### Use an N-key rollover (NKRO) QWERTY keyboard An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [confirm it's working](#confirm-its-working). #### Which NKRO keyboard should I get? Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards). * See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose) ### Adapt a keyboard for steno use Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers) * [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps) You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout). ### Use a machine designed for use with Plover Various steno enthusiasts are making and selling machines designed for use with Plover: * [Ecosteno*](https://nolltronics.com/product/ecosteno/) * [Multisteno*](https://nolltronics.com/product/multisteno/) * [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard) * [Splitography*](https://softhruf.love/products/soft-hruf-erl) * [Starboard*](https://www.stenography.store/) * [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html) * [The Uni*](https://stenokeyboards.com/) (* = External link) More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover). ### Use a professional stenography machine Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. ## Confirm it's working Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR. ### Keyboard By default, Plover will use your keyboard as its input device. 1. Run Plover. 1. Click the Output: **Enable** radio button. ### Write "Hello World" To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. > NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. | Output | Steno Key Stroke | QWERTY Keys | | ---- | ---- | ---- | | hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) | | o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) | | , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) | | world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) | | . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) | If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine) * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO #### Practice sentences You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website. #### Use the correct body posture and finger placement Your fingers should be curled slightly, so you press the keys using the tips of your fingers. ![Steno keys on QWERTY keyboard](https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png) On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place. | QWERTY layout|Maps to steno layout | |:---:|:---:| |`QWER TY UIOP[`|`STPH ** FPLTD`| |`ASDF GH JKL;`|`SKWR ** RBGSZ`| |`CV NM`|`AO EU`| See also: * [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo) * [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU) ### Stenography machine Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: 1. Run Plover and click the **Enable** radio button. 1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears. 1. On the **Machine** tab, select the protocol your machine uses. 1. Click **Save**. See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information. ## Practice and learn It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography). ### Which steno theory should you learn? There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki). **We recommend learning either Plover theory or Lapwing theory.** Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch. </markdown> [[Category:Plover]] 906f044233a6fa002ed4c8d4e98dfac519bcd23e 101 78 2024-02-05T21:50:51Z Astra 8 convert to mediawiki format + fix typo wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]] * If you get stuck, see the [[Toubleshooting_Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. <div class="figure"> [[File:https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif|Arpeggiate gif]] </div> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <div class="figure"> [[File:https://github.com/openstenoproject/plover/assets/52895314/5467e672-7306-43d8-83fb-6f771a5802ef|arpeggiate option]] </div> <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. [[File:https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif|keyboard rolling]] Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno*] * [https://nolltronics.com/product/multisteno/ Multisteno*] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*] * [https://softhruf.love/products/soft-hruf-erl Splitography*] * [https://www.stenography.store/ Starboard*] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*] * [https://stenokeyboards.com/ The Uni*] (* = External link) More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. </blockquote> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> [[File:https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png|Steno keys on QWERTY keyboard]] </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. 933a9e492421512c030104a2c54a21071ba66456 102 101 2024-02-05T21:51:05Z Astra 8 fix troubleshooting link wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]] * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. <div class="figure"> [[File:https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif|Arpeggiate gif]] </div> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <div class="figure"> [[File:https://github.com/openstenoproject/plover/assets/52895314/5467e672-7306-43d8-83fb-6f771a5802ef|arpeggiate option]] </div> <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. [[File:https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif|keyboard rolling]] Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno*] * [https://nolltronics.com/product/multisteno/ Multisteno*] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*] * [https://softhruf.love/products/soft-hruf-erl Splitography*] * [https://www.stenography.store/ Starboard*] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*] * [https://stenokeyboards.com/ The Uni*] (* = External link) More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. </blockquote> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> [[File:https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png|Steno keys on QWERTY keyboard]] </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. 647aea35898f7fc4a7e0e5c32654013c7261e576 103 102 2024-02-05T21:56:45Z Astra 8 external images wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]] * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno*] * [https://nolltronics.com/product/multisteno/ Multisteno*] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*] * [https://softhruf.love/products/soft-hruf-erl Splitography*] * [https://www.stenography.store/ Starboard*] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*] * [https://stenokeyboards.com/ The Uni*] (* = External link) More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. </blockquote> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> [[File:https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png|Steno keys on QWERTY keyboard]] </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. 4f43a4971ec3379a5ae4fe58a50207865115f918 104 103 2024-02-05T21:57:06Z Astra 8 external images pt 2 wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]] * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno*] * [https://nolltronics.com/product/multisteno/ Multisteno*] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*] * [https://softhruf.love/products/soft-hruf-erl Splitography*] * [https://www.stenography.store/ Starboard*] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*] * [https://stenokeyboards.com/ The Uni*] (* = External link) More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. </blockquote> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. 6ed05f69242480dd32a092151d5ae0c810d65879 105 104 2024-02-05T22:03:36Z Astra 8 re-add plover category wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]] * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno*] * [https://nolltronics.com/product/multisteno/ Multisteno*] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*] * [https://softhruf.love/products/soft-hruf-erl Splitography*] * [https://www.stenography.store/ Starboard*] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*] * [https://stenokeyboards.com/ The Uni*] (* = External link) More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. </blockquote> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] 65b1853227a6b1e1ee92aefacce1ceb15c055d65 Category:Plover 14 25 80 2024-02-05T18:00:22Z Rice 1 Created page with "Plover documentation pages" wikitext text/x-wiki Plover documentation pages c6d5c913c4f37ed8eb1f6bdc9622169b5f303524 Supported hardware 0 10 81 55 2024-02-05T18:01:11Z Rice 1 wikitext text/x-wiki <markdown> This page lists the machine known to work with Plover. **Table of Contents** - [Dedicated machines designed for use with Plover](#dedicated-machines-designed-for-use-with-plover) - [Commercially Available Hobbyist Machines](#commercially-available-hobbyist-machines) - [DIY Machines](#diy-machines) - [Out-of-production Machines](#out-of-production-machines) - [Stenotype Machines](#stenotype-machines) - [Supported protocols](#supported-protocols) - [Known supported stenotypes](#known-supported-stenotypes) - [Keyboards](#keyboards) - [What's NKRO?](#whats-nkro) - [How do I know if my keyboard has NKRO](#how-do-i-know-if-my-keyboard-has-nkro) - [Test #1: Double Shift](#test-1-double-shift) - [Test #2: Keyboard Ghosting Test](#test-2-keyboard-ghosting-test) - [What if my keyboard is not capable of NKRO?](#what-if-my-keyboard-is-not-capable-of-nkro) - [Known supported keyboards](#known-supported-keyboards) - [Which type of key switch should I choose?](#which-type-of-key-switch-should-i-choose) - [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use) - [Keytoppers](#keytoppers) - [Keycaps](#keycaps) - [NKRO keyboards with an ortholinear layout](#nkro-keyboards-with-an-ortholinear-layout) - [Laptops with NKRO](#laptops-with-nkro) - [Laptops that don't actually work with Plover](#laptops-that-dont-actually-work-with-plover) # Dedicated machines designed for use with Plover Various steno enthusiasts are making and selling machines designed for use with Plover. ## Commercially Available Hobbyist Machines Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> | Product Name | Manufacturer | About | Price | | - | - | ---- | - | | [Ecosteno](https://nolltronics.com/product/ecosteno/) | [Nolltronics](https://nolltronics.com/) | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>**Stock status** (as of January 2024): In stock | $95 | | [Multisteno](https://nolltronics.com/product/multisteno/) | [Nolltronics](https://nolltronics.com/) | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>**Stock status** (as of January 2024): In stock | $170 | | [Polyglot](https://stenokeyboards.com/products/polyglot-keyboard) | [StenoKeyboards](https://www.stenokeyboards.com) | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>**Stock status** (as of January 2024): In stock| $125 | | [SOFT/HRUF Splitography](https://softhruf.love) | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, "soft love". The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch's internal leaflet, it is possible to reduce the force required to actuate.<br><br>**Stock status** (as of January 2024): Out of stock. [(source)](https://softhruf.love/products/soft-hruf-erl) | $138 | | [Starboard](https://www.stenography.store/) | [Stenography Store](https://www.stenography.store/) | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>**Stock status** (as of January 2024): In stock | $90 (+ $10 shipping) | | [TinyMod](https://stenomod.blogspot.com) | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [Mirabai's review](http://plover.stenoknight.com/2019/12/tinymod-review.html).<br><br>**Stock status** (as of January 2024): In stock | $140 (stock)<br>$180 (silent) | | [The Uni](https://www.stenokeyboards.com/products/the-uni-v4) | [StenoKeyboards](https://www.stenokeyboards.com) | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>**Stock status** (as of January 2024): In stock | $100 | ## DIY Machines Projects to build your own machine. | Product Name | About | | ---------------------------------- | ----------------------- | | [MechWild BB Steno](https://mechwild.com/product/bb-steno/) | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. | [Picosteno](https://nolltronics.com/product/picosteno/) | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! | [Stenokey](https://github.com/mike-ady/Stenokey) | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. | | [The Uni v2 PCB](https://stenokeyboards.com/products/uni-v2-pcb) | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. | | [Yet Another Steno Keyboard](https://github.com/ttempe/YASK)| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [build instructions](https://youtu.be/82yD0RMeEw8)| ## Out-of-production Machines Models that are no longer made or available for sale. | Product Name | Manufacturer | About | Years | | ---------------------------------- | ------------------ | ----------------------- | ----- | | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard's keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 | | [SOFT/HRUF](https://softhruf.love) | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography | | [Stenomod](https://stenomod.blogspot.com) | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [Ted Morin's review of the Stenomod](https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine) as well as [Martin Körner's review](https://stenoblog.com/the-stenomod/). The name is supposed to hint at how the machine is "modular" and adaptable. | 2017-2018, superseded by the TinyMod | | [Georgi](https://www.gboards.ca/product/georgi) | [g Heavy Industries](https://www.gboards.ca) | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [Martin's Georgi Stand with Trackball review](https://stenoblog.com/georgi-stand-with-trackball/), [Mirabai's review](http://plover.stenoknight.com/2019/12/georgi-review.html), [Aerick's Georgi Mount](https://aerick.ca/steno/georgi-stand/), and [Josh's photos](https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04). | 2019-2021 | | [Steko](https://quanicboards.com/products/steko) | [Quanic Boards](https://quanicboards.com) | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 | # Stenotype Machines <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/> ## Supported protocols Plover supports several protocols that are in use by various machines: * **Stentura serial**: most machines by Stenograph and many others. * **Gemini PR serial**: typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * **ProCAT**: protocol used by all ProCAT machines. * **TX Bolt**: an older protocol supported by some machines as a primary or secondary protocol. * **Treal**: used only by the Treal from Word Technologies. * **Passport**: used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover. ## Known supported stenotypes The following machines have been confirmed by users to work with Plover after actually trying it: | Product Name | Manufacturer | Protocol/Connection | Comments | | ---------------------------------- | ------------------ | ------------------- | ----------------------- | | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | | | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, *maybe*) | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. | | Flash Writer | ProCAT | TX Bolt | Press `Mode` (far right button), click `Setup`, then press the `Emul` button. Display should read `Emulate: Baron` | | Gemini2 | Neutrino Group | Gemini PR (serial) | | | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [Infinity2](https://www.infinitytraditional.com/infinity-2/) | | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 | | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided "Lightspeed Zenith" software, not the "Lightspeed" software from the Stenovations website. Protocol can be changed depending on the "Writer Mode" setting in options. Choose "Model II and Model III" at startup. | | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 | | Infinity Genesis | Neutrino Group | Gemini PR (serial) | | | Passport | Advantage Software | Passport (USB) | | | Passport Touch | Advantage Software | USB, Bluetooth | While in "Emulation Mode": Stentura over Bluetooth or TX Bolt over USB  | | Revolution Grand | Neutrino Group | Gemini PR (serial) | | | Stentura 400 SRT | Stenograph | Stentura (serial) | [Setup Instructions](https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT) | | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) | | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) | | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) | | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the `plover-stenograph` plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [Setup Instructions for Serial](https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions)| | Tréal | Word technologies | Treal (USB) | | | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the `plover-stenograph` plugin. Make sure "serial protocol" on the Wave is set to "Stentura". | | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the `plover-stenograph` plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. | # Keyboards If you don't have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). ## What's NKRO? This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [Wikipedia entry about NKRO](https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover). ## How do I know if my keyboard has NKRO In general, most keyboards will not be NKRO. "Gaming" and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit [https://keyboardchecker.com/](https://keyboardchecker.com/) and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website. ## What if my keyboard is not capable of NKRO? If you don't have a keyboard that's capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard) for more information. ## Known supported keyboards You can search for NKRO keyboards compatible with Plover by including "NKRO" or "anti-ghosting" in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: | Product Name | Manufacturer | Comments | Price | --------------------------- | ---------------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [27 GBP](https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/) | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [similar model](http://www.dareu.com/?m=home&c=View&a=index&aid=169), they may have the glitch mentioned above or not. | < $30 | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [$30](https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/) | K552 | Redragon | NKRO over USB | [$35](https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U) | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [$40](https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html) | ZM-K600S | Zalman | NKRO over USB | [$40](https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE) | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [$50](https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/) | K66 | Corsair | NKRO over USB | [$55](https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/) | K63 | Corsair | NKRO over USB (Works on Mac!) | [$80](https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT) | K68 | Corsair | NKRO over USB | $160-200 | K95 | Corsair | NKRO over USB | [~$200](https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM) | KG901 | Marvo | NKRO over USB | $30-70 AUD | STRAFE | Corsair | NKRO over USB | [$80](https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/) | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn't work on Mac) | [$85](https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/) | Vengeance K65 | Corsair | NKRO over USB | [$90](http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html) | C413 Carbon | Logitech | 26KRO | [$90](https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html) | Francium Pro | Deck | NKRO over USB when in "lightning" mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you'd be stuck with 6KRO). | [$94](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690) | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [$95](https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1) | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in "gaming" mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [$100](https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1) | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [$120](https://www.amazon.com/dp/B076XDTLBB) | G710+ | Logitech | NKRO over USB | [$130](https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard) | Majestouch-2 | Filco | NKRO over USB | [$167](https://amzn.to/oLy2xQ) | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [$169](https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/) | Apex M800 | SteelSeries | NKRO over USB | [$199](https://steelseries.com/gaming-keyboards/apex-m800) | Ergo Pro | Matias | NKRO over USB | [$200](https://matias.ca/ergopro/pc/) | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [$250](https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard) | Ergodox | Ergodox | NKRO over USB | [Parts €160.00 - Assembled €247.00](https://falba.tech/customize-your-keyboard/customize-your-ergodox/) | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc.| NKRO over USB | [EZ Only $270 - All Upgrades $354+](https://ergodox-ez.com) | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [ Planck only $180 - W/LED Backlighting $195 ](https://ergodox-ez.com/pages/planck) | Model01 | Keyboard.io | NKRO over USB | [$329](https://shop.keyboard.io) | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [$139](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917) ### Which type of key switch should I choose? Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a **light actuation force** on a **linear** switch. The light actuation makes it easier on your hands. For a chord like `TKPWHRAOEUGD` (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that's 640cN (~640g, ~22.6 oz). **For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.** | How many keys are in the average chord? | | | --- | --- | | 1:&nbsp;23<br />2:&nbsp;221<br />3:&nbsp;1115<br />4:&nbsp;3247<br />5:&nbsp;6168<br />6:&nbsp;7820<br />7:&nbsp;7293<br />8:&nbsp;5069<br />9:&nbsp;2707<br />10:&nbsp;1126<br />11:&nbsp;331<br />12:&nbsp;90<br />13:&nbsp;21<br />14:&nbsp;3<br />15:&nbsp;1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> | The linearity is recommended because it's been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn't process all the fingers' feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between **10cN and 20cN**, with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between **2mm and 30mm**. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that "speed switches" with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. | Switch | Stat | Note | Machines | | ------ | ---- | ---- | ------- | | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch | | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch | | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a "flat" force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch | | Cherry MX Red | 45 cN linear | | | | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | | | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | | |Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch | \* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: - Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro - Putting the Gateron Clear's 35 cN spring into the Kailh Silver for its earlier actuation point. - Trimming the springs of a linear switch by several mm to reduce force. - Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn't yet released to the wider market. - Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat. ## Adapt a keyboard for steno use ![](https://c1.staticflickr.com/5/4202/34180678224_98d3e26f1f_n.jpg) Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout. ### Keytoppers Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [Plover Store](http://plover.deco-craft.com/). You can also make your own keytoppers out of plastic or even coins. ![Laser-cut keytoppers sitting in a pile](https://i.imgur.com/cjWDy2J.jpg) ### Keycaps If you have a mechanical keyboard, it is likely your keys have a [Cherry MX stem](https://deskthority.net/wiki/Cherry_MX) and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. - [StenoToppers](https://cemrajc.github.io/stenotoppers/) is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service. <img src="https://imgur.com/FRwXu8x.jpg" width="400"> - The [G20 keycap set](https://pimpmykeyboard.com/g20-blank-keycap-sets/) from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (`STPH...`) down, so that they are close to the bottom row (`SKWR...`) - You can 3D-print a [steno-friendly keycap](https://github.com/morinted/stenomod_case). Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary). ## NKRO keyboards with an ortholinear layout Keyboards with an "ortholinear" layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: | Product Name | Manufacturer | Protocol/Connection | Comments | | ---------------------------------- | ------------------ | ------------------- | ----------------------- | | [ErgoDox](https://deskthority.net/wiki/ErgoDox) | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [guide to Starting Stenography with an Ergodox by Paul Fioravanti](https://www.paulfioravanti.com/blog/starting-stenography-ergodox/). | | [Planck](https://olkb.com/planck/) | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [guide to starting stenography with a Planck by DiDoesDigital](https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/). <br /> ![Planck steno keyboard](https://i.imgur.com/e9B2qpO.jpg)| |[Preonic](https://olkb.com/preonic/)| OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. | | [Gherkin](http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html) | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. | [Iris](https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard) | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don't feel as good as the Alienware's classic keyboard style. It's always best to try laptop keyboards at a local store, if possible. | Model | Screen Size | Manufacturer | Rollover | Price (USD) | Weight | | -------- | ----------- | --------------- | ------- | ----- | ------ | | [Alienware R3/R4](https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops) | 13", 15", 17" | Dell | n-key | **$1000** to $3000 | 5.8 to 9.8 lbs | | [GL553](https://www.asus.com/ca-en/Laptops/ROG-GL553VD/) | 15" | Asus | 30-key | $1200 | 5.5 lbs | | [Razer Blade Stealth 8th Gen](https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth) | 13" | Razer | 14-key | $1200+ | **2.98 lbs** | | [Zephyrus GM501](https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/) | 15" | Asus | 30-key | $1500 to $2200 | 5.5lbs | | [Omen X](https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html) | 17" | HP | n-key* | $1800 | 10.7 lbs | | [P57X](https://www.gigabyte.com/Laptop/P57X-v7) | 17" | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs | | [GL502](https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/) | 15" | Asus | 30-key | $1900 | 4.9 lbs | | [Aero 15/15x](https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H) | 15" | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs | | [Legion Y920](https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877) | 17" | Lenovo | 100-key* | $2200 | 10.1 lbs | | [Zephyrus GX501](https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/) | 15" | Asus | 30-key | $2500 | 4.85lbs | | Aorus [X5 v8](https://www.aorus.com/product-detail.php?p=744) and [X7 v8](https://www.aorus.com/product-detail.php?p=745) | 15", 17" | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs | | [Predator Triton 700](https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q) | 15" | Acer | n-key (clicky keys) | $3000 | 5.3 lbs | \* Untested for use with Plover ## Laptops that don't actually work with Plover After testing some of the laptops on the list above, they were found to not live up to their claims. | Model | Manufacturer | Claimed Rollover | Findings | | -------- | --------------- | ------- | ----- | | HP Omen [15](https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr) and [17](https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr) | HP | "26-key rollover anti-ghosting" | Combination "YUHJ" on Qwerty only produces 3 letters | | [GF62](https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html) and [GP72](https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M) | MSI | "anti-ghosting for up to 45 keys" | 99% of chords were OK, certain combinations wouldn't work -- e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. | </markdown> [[Category:Plover]] 5717d753a5a0d13587a4d775302a90159bc5f8e1 Category:Stenography 14 26 87 2024-02-05T18:05:33Z Rice 1 Created page with "Pages with information regarding stenography in general and not specific to Plover" wikitext text/x-wiki Pages with information regarding stenography in general and not specific to Plover bab08ad68b57d9376da62d3e858278c39f6de4a2 MediaWiki:Mainpage 8 2 93 6 2024-02-05T19:13:28Z Rice 1 wikitext text/x-wiki Plover_Wiki b2ec40901c908023ad11137d7264ad0029b40c8b Installation Guide 0 8 107 106 2024-02-05T22:11:09Z Astra 8 Fix spacing, typos, links wikitext text/x-wiki '''Table of Contents''' * [[#install-plover-on-windows|Install Plover on Windows]] * [[#install-plover-on-mac|Install Plover on Mac]] * [[#install-plover-on-linux|Install Plover on Linux]] * [[#troubleshooting|Troubleshooting]] * [[#setting-up-my-machine|Setting up my machine]] * [[#other-installation-methods|Other installation methods]] * [[#for-developers-running-from-source|For developers: running from source]]<span id="install-plover-on-windows"></span> = Install Plover on Windows = Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] == Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] == Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> = Install Plover on Mac = <span id="download-plover-for-mac-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] == # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.] # Open <code>System Preferences &gt; Security &amp; Privacy &gt; Privacy &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. Plover is set up! You can run Plover like you would any other application. <blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span> === If you had previously uninstalled Plover or upgraded your system === Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span> = Install Plover on Linux = Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.<span id="download-the-plover-appimage-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] == To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> == Error relating to xcb == You may run into the following error when trying to run Plover: <blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem. </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> = Setting up my machine = Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> = Other installation methods = <span id="other-releases"></span> == Other releases == You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.<span id="homebrew-cask"></span> == Homebrew Cask == If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> == Arch AUR package == Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> == Gentoo git ebuild == Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> = Troubleshooting = If you get stuck, you can: * Check the [https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues troubleshooting guide.] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> = For developers: running from source = If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] 50cffe8c3b8954b2c9fc2eafa5a84c913c737b78 108 107 2024-02-05T22:14:17Z Astra 8 add troubleshooting inlink wikitext text/x-wiki '''Table of Contents''' * [[#install-plover-on-windows|Install Plover on Windows]] * [[#install-plover-on-mac|Install Plover on Mac]] * [[#install-plover-on-linux|Install Plover on Linux]] * [[#troubleshooting|Troubleshooting]] * [[#setting-up-my-machine|Setting up my machine]] * [[#other-installation-methods|Other installation methods]] * [[#for-developers-running-from-source|For developers: running from source]]<span id="install-plover-on-windows"></span> = Install Plover on Windows = Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] == Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] == Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> = Install Plover on Mac = <span id="download-plover-for-mac-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] == # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.] # Open <code>System Preferences &gt; Security &amp; Privacy &gt; Privacy &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. Plover is set up! You can run Plover like you would any other application. <blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span> === If you had previously uninstalled Plover or upgraded your system === Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span> = Install Plover on Linux = Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.<span id="download-the-plover-appimage-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] == To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> == Error relating to xcb == You may run into the following error when trying to run Plover: <blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem. </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> = Setting up my machine = Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> = Other installation methods = <span id="other-releases"></span> == Other releases == You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.<span id="homebrew-cask"></span> == Homebrew Cask == If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> == Arch AUR package == Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> == Gentoo git ebuild == Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> = Troubleshooting = If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> = For developers: running from source = If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] 97431c32afcc0bb3c2c415874848c7fb8e0a9011 116 108 2024-02-05T22:55:38Z Rice 1 wikitext text/x-wiki = Install Plover on Windows = Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] == Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] == Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> = Install Plover on Mac = <span id="download-plover-for-mac-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] == # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.] # Open <code>System Preferences &gt; Security &amp; Privacy &gt; Privacy &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. Plover is set up! You can run Plover like you would any other application. <blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span> === If you had previously uninstalled Plover or upgraded your system === Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span> = Install Plover on Linux = Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.<span id="download-the-plover-appimage-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] == To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> == Error relating to xcb == You may run into the following error when trying to run Plover: <blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem. </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> = Setting up my machine = Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> = Other installation methods = <span id="other-releases"></span> == Other releases == You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.<span id="homebrew-cask"></span> == Homebrew Cask == If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> == Arch AUR package == Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> == Gentoo git ebuild == Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> = Troubleshooting = If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> = For developers: running from source = If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] ba3f1a33b469d230502c01ddc0f3e2099488ad93 149 116 2024-02-11T00:23:50Z Aerick 9 Add gif for installing other plover versions wikitext text/x-wiki = Install Plover on Windows = Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] == Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] == Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> = Install Plover on Mac = <span id="download-plover-for-mac-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] == # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.] # Open <code>System Preferences &gt; Security &amp; Privacy &gt; Privacy &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. Plover is set up! You can run Plover like you would any other application. <blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span> === If you had previously uninstalled Plover or upgraded your system === Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span> = Install Plover on Linux = Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.<span id="download-the-plover-appimage-here"></span> == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] == To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> == Error relating to xcb == You may run into the following error when trying to run Plover: <blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem. </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> = Setting up my machine = Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> = Other installation methods = <span id="other-releases"></span> == Other releases == You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] == Homebrew Cask == If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> == Arch AUR package == Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> == Gentoo git ebuild == Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> = Troubleshooting = If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> = For developers: running from source = If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] 7ee7f1360241be5c618b7c89ecc7052123b16452 Troubleshooting issues 0 14 109 85 2024-02-05T22:16:55Z Astra 8 Initial markdown ~> mediawiki conversion wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues. ----- <!-- TOC --> * [[#running-in-debug-mode|Running in Debug Mode]] * [[#issues|Issues]] ** [[#general|General]] *** [[#plover-does-not-recognize-my-usb-keyboard-or-steno-machine|Plover does not recognize my USB keyboard or steno machine]] *** [[#strokes-no-longer-appear-when-using-keyboard|Strokes no longer appear when using keyboard]] *** [[#when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right|When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right]] ** [[#plugins-manager|Plugins Manager]] ** [[#dictionary-issues|Dictionary issues]] *** [[#dictionary-priority|Dictionary priority]] *** [[#if-you-have-your-own-dictionary-already|If you have your own dictionary already]] ** [[#about-the-default-dictionaries|About the default dictionaries]] *** [[#mainjson|main.json]] *** [[#commandsjson|commands.json]] *** [[#userjson|user.json]] ** [[#windows-1|Windows]] *** [[#unrecognized-keystrokes-and-other-strange-behavior|Unrecognized keystrokes and other strange behavior]] *** [[#no-output|No output]] ** [[#macos|macOS]] *** [[#plover-does-not-run-macos|Plover does not run (macOS)]] *** [[#unrecognized-keystrokes|Unrecognized keystrokes]] ** [[#linux|Linux]] *** [[#unrecognized-keystrokes-1|Unrecognized keystrokes]] *** [[#linux-dynamic-keyboard-layout-switching-is-not-working|Linux dynamic keyboard layout switching is not working]] *** [[#delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine|Delayed/slow output when using gnome-shell and the keyboard machine]] <!-- /TOC --> <span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line Invoke Plover from the command line]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage) <span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === <blockquote>'''Note''': Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] for configuration instructions specific to your machine. </blockquote> If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover. <span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate arpeggiating] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate. <span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span> === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys. <span id="plugins-manager"></span> == Plugins Manager == If you’re running Plover 4.x and are missing the plugins manager or it’s not working as expected, you can try [https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins manually installing plugins] <span id="dictionary-issues"></span> == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users. <span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority. <span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory. <span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries. <span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover. <span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection] <span id="macos"></span> == macOS == <span id="plover-does-not-run"></span> === Plover does not run === <ul> <li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p> <ul> <li><p>If Plover does not have the permission, you’ll see this error message</p> <blockquote><p>Exception: Enable access for assistive devices.</p></blockquote></li> <li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security &amp; Privacy &gt; Privacy &gt; Accessibility.</p> <p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li> <li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p> <p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p> <p>There are several ways you can try to fix them, from least destructive to most destructive:</p> <ol style="list-style-type: decimal;"> <li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li> <li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications &gt; Utilities &gt; Terminal.app), copy/paste the following command and press Enter:</p> <pre>sudo tccutil reset Accessibility</pre> <p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li> <li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p> <pre>sudo tccutil reset All</pre></li> <li><p>Alternatively, as a debugging step, [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line invoke Plover in the terminal] with the command</p> <pre>/Applications/Plover.app/Contents/MacOS/Plover</pre> <p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol> </li> <li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul> </li></ul> <span id="unrecognized-keystrokes"></span> === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”]. <span id="linux"></span> == Linux == <span id="missing-or-jumbled-output"></span> === Missing or jumbled output === * IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). <span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span> === Linux dynamic keyboard layout switching is not working === * Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298]. <span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span> === Delayed/slow output when using gnome-shell and the keyboard machine === * It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. 035cd3cc644d373b26fa06c8a1e787db8f603132 110 109 2024-02-05T22:25:49Z Astra 8 Spacing fix wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues. ----- <!-- TOC --> * [[#running-in-debug-mode|Running in Debug Mode]] * [[#issues|Issues]] ** [[#general|General]] *** [[#plover-does-not-recognize-my-usb-keyboard-or-steno-machine|Plover does not recognize my USB keyboard or steno machine]] *** [[#strokes-no-longer-appear-when-using-keyboard|Strokes no longer appear when using keyboard]] *** [[#when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right|When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right]] ** [[#plugins-manager|Plugins Manager]] ** [[#dictionary-issues|Dictionary issues]] *** [[#dictionary-priority|Dictionary priority]] *** [[#if-you-have-your-own-dictionary-already|If you have your own dictionary already]] ** [[#about-the-default-dictionaries|About the default dictionaries]] *** [[#mainjson|main.json]] *** [[#commandsjson|commands.json]] *** [[#userjson|user.json]] ** [[#windows-1|Windows]] *** [[#unrecognized-keystrokes-and-other-strange-behavior|Unrecognized keystrokes and other strange behavior]] *** [[#no-output|No output]] ** [[#macos|macOS]] *** [[#plover-does-not-run-macos|Plover does not run (macOS)]] *** [[#unrecognized-keystrokes|Unrecognized keystrokes]] ** [[#linux|Linux]] *** [[#unrecognized-keystrokes-1|Unrecognized keystrokes]] *** [[#linux-dynamic-keyboard-layout-switching-is-not-working|Linux dynamic keyboard layout switching is not working]] *** [[#delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine|Delayed/slow output when using gnome-shell and the keyboard machine]] <!-- /TOC --><span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line Invoke Plover from the command line]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === <blockquote>'''Note''': Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] for configuration instructions specific to your machine. </blockquote> If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate arpeggiating] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span> === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == If you’re running Plover 4.x and are missing the plugins manager or it’s not working as expected, you can try [https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins manually installing plugins]<span id="dictionary-issues"></span> == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == <span id="plover-does-not-run"></span> === Plover does not run === <ul> <li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p> <ul> <li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code> </li> <li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security &amp; Privacy &gt; Privacy &gt; Accessibility.</p> <p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li> <li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p> <p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p> <p>There are several ways you can try to fix them, from least destructive to most destructive:</p> <ol style="list-style-type: decimal;"> <li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li> <li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications &gt; Utilities &gt; Terminal.app), copy/paste the following command and press Enter:</p> <pre>sudo tccutil reset Accessibility</pre> <p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li> <li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p> <pre>sudo tccutil reset All</pre></li> <li><p>Alternatively, as a debugging step, [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line invoke Plover in the terminal] with the command</p> <pre>/Applications/Plover.app/Contents/MacOS/Plover</pre> <p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol> </li> <li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul> </li></ul><span id="unrecognized-keystrokes"></span> === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == <span id="missing-or-jumbled-output"></span> === Missing or jumbled output === * IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>).<span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span> === Linux dynamic keyboard layout switching is not working === * Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].<span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span> === Delayed/slow output when using gnome-shell and the keyboard machine === * It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. a85b43d2af697cced922e85cddf69fe0ff327f75 127 110 2024-02-05T23:29:02Z Rice 1 wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line Invoke Plover from the command line]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === <blockquote>'''Note''': Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] for configuration instructions specific to your machine. </blockquote> If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate arpeggiating] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span> === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == If you’re running Plover 4.x and are missing the plugins manager or it’s not working as expected, you can try [https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins manually installing plugins]<span id="dictionary-issues"></span> == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == <span id="plover-does-not-run"></span> === Plover does not run === <ul> <li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p> <ul> <li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code> </li> <li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security &amp; Privacy &gt; Privacy &gt; Accessibility.</p> <p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li> <li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p> <p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p> <p>There are several ways you can try to fix them, from least destructive to most destructive:</p> <ol style="list-style-type: decimal;"> <li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li> <li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications &gt; Utilities &gt; Terminal.app), copy/paste the following command and press Enter:</p> <pre>sudo tccutil reset Accessibility</pre> <p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li> <li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p> <pre>sudo tccutil reset All</pre></li> <li><p>Alternatively, as a debugging step, [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line invoke Plover in the terminal] with the command</p> <pre>/Applications/Plover.app/Contents/MacOS/Plover</pre> <p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol> </li> <li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul> </li></ul><span id="unrecognized-keystrokes"></span> === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == <span id="missing-or-jumbled-output"></span> === Missing or jumbled output === * IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>).<span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span> === Linux dynamic keyboard layout switching is not working === * Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].<span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span> === Delayed/slow output when using gnome-shell and the keyboard machine === * It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. 7633446c8961edf77113c41c40911d070df9aa06 Supported hardware 0 10 111 81 2024-02-05T22:28:02Z Astra 8 Initial markdown ~> mediawiki conversion wikitext text/x-wiki This page lists the machines known to work with Plover. ----- <!-- TOC --> * [[#dedicated-machines-designed-for-use-with-plover|Dedicated machines designed for use with Plover]] ** [[#commercially-available-hobbyist-machines|Commercially Available Hobbyist Machines]] ** [[#diy-machines|DIY Machines]] ** [[#out-of-production-machines|Out-of-production Machines]] * [[#stenotype-machines|Stenotype Machines]] ** [[#supported-protocols|Supported protocols]] ** [[#known-supported-stenotypes|Known supported stenotypes]] * [[#keyboards|Keyboards]] ** [[#whats-nkro|What’s NKRO?]] ** [[#how-do-i-know-if-my-keyboard-has-nkro|How do I know if my keyboard has NKRO]] *** [[#test-1-double-shift|Test #1: Double Shift]] *** [[#test-2-keyboard-ghosting-test|Test #2: Keyboard Ghosting Test]] ** [[#what-if-my-keyboard-is-not-capable-of-nkro|What if my keyboard is not capable of NKRO?]] ** [[#known-supported-keyboards|Known supported keyboards]] *** [[#which-type-of-key-switch-should-i-choose|Which type of key switch should I choose?]] ** [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] *** [[#keytoppers|Keytoppers]] *** [[#keycaps|Keycaps]] ** [[#nkro-keyboards-with-an-ortholinear-layout|NKRO keyboards with an ortholinear layout]] * [[#laptops-with-nkro|Laptops with NKRO]] ** [[#laptops-that-dont-actually-work-with-plover|Laptops that don’t actually work with Plover]] <!-- /TOC --> <span id="dedicated-machines-designed-for-use-with-plover"></span> = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover. <span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price |- | [https://nolltronics.com/product/ecosteno/ Ecosteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock | $100 |} <span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} <span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |} <span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/> <span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover. <span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions Setup Instructions for Serial] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} <span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). <span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. <span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website. <span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard Beginner’s Guide] for more information. <span id="known-supported-keyboards"></span> == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |} <span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat. <span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == [[File:https://c1.staticflickr.com/5/4202/34180678224_98d3e26f1f_n.jpg]] Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout. <span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <div class="figure"> [[File:https://i.imgur.com/cjWDy2J.jpg|Laser-cut keytoppers sitting in a pile]] </div> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary). <span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} * Untested for use with Plover <span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} [[Category:Plover]] 873f61d75587035dd9213bcc3cd3e674e250b336 112 111 2024-02-05T22:29:47Z Astra 8 Image spacing wikitext text/x-wiki This page lists the machines known to work with Plover. ----- <!-- TOC --> * [[#dedicated-machines-designed-for-use-with-plover|Dedicated machines designed for use with Plover]] ** [[#commercially-available-hobbyist-machines|Commercially Available Hobbyist Machines]] ** [[#diy-machines|DIY Machines]] ** [[#out-of-production-machines|Out-of-production Machines]] * [[#stenotype-machines|Stenotype Machines]] ** [[#supported-protocols|Supported protocols]] ** [[#known-supported-stenotypes|Known supported stenotypes]] * [[#keyboards|Keyboards]] ** [[#whats-nkro|What’s NKRO?]] ** [[#how-do-i-know-if-my-keyboard-has-nkro|How do I know if my keyboard has NKRO]] *** [[#test-1-double-shift|Test #1: Double Shift]] *** [[#test-2-keyboard-ghosting-test|Test #2: Keyboard Ghosting Test]] ** [[#what-if-my-keyboard-is-not-capable-of-nkro|What if my keyboard is not capable of NKRO?]] ** [[#known-supported-keyboards|Known supported keyboards]] *** [[#which-type-of-key-switch-should-i-choose|Which type of key switch should I choose?]] ** [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] *** [[#keytoppers|Keytoppers]] *** [[#keycaps|Keycaps]] ** [[#nkro-keyboards-with-an-ortholinear-layout|NKRO keyboards with an ortholinear layout]] * [[#laptops-with-nkro|Laptops with NKRO]] ** [[#laptops-that-dont-actually-work-with-plover|Laptops that don’t actually work with Plover]] <!-- /TOC --> <span id="dedicated-machines-designed-for-use-with-plover"></span> = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover. <span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price |- | [https://nolltronics.com/product/ecosteno/ Ecosteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock | $100 |} <span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} <span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |} <span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/> <span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover. <span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions Setup Instructions for Serial] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} <span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). <span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. <span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website. <span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard Beginner’s Guide] for more information. <span id="known-supported-keyboards"></span> == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |} <span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat. <span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == [[File:https://c1.staticflickr.com/5/4202/34180678224_98d3e26f1f_n.jpg]] Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout. <span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <div class="figure"> [[File:https://i.imgur.com/cjWDy2J.jpg|Laser-cut keytoppers sitting in a pile]] </div> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary). <span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} * Untested for use with Plover <span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} [[Category:Plover]] df68b05e17b8f6579013e954cdffc276a330389a 114 112 2024-02-05T22:37:14Z Astra 8 Spacing and images wikitext text/x-wiki This page lists the machines known to work with Plover. ----- <!-- TOC --> * [[#dedicated-machines-designed-for-use-with-plover|Dedicated machines designed for use with Plover]] ** [[#commercially-available-hobbyist-machines|Commercially Available Hobbyist Machines]] ** [[#diy-machines|DIY Machines]] ** [[#out-of-production-machines|Out-of-production Machines]] * [[#stenotype-machines|Stenotype Machines]] ** [[#supported-protocols|Supported protocols]] ** [[#known-supported-stenotypes|Known supported stenotypes]] * [[#keyboards|Keyboards]] ** [[#whats-nkro|What’s NKRO?]] ** [[#how-do-i-know-if-my-keyboard-has-nkro|How do I know if my keyboard has NKRO]] *** [[#test-1-double-shift|Test #1: Double Shift]] *** [[#test-2-keyboard-ghosting-test|Test #2: Keyboard Ghosting Test]] ** [[#what-if-my-keyboard-is-not-capable-of-nkro|What if my keyboard is not capable of NKRO?]] ** [[#known-supported-keyboards|Known supported keyboards]] *** [[#which-type-of-key-switch-should-i-choose|Which type of key switch should I choose?]] ** [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] *** [[#keytoppers|Keytoppers]] *** [[#keycaps|Keycaps]] ** [[#nkro-keyboards-with-an-ortholinear-layout|NKRO keyboards with an ortholinear layout]] * [[#laptops-with-nkro|Laptops with NKRO]] ** [[#laptops-that-dont-actually-work-with-plover|Laptops that don’t actually work with Plover]] <!-- /TOC --> <span id="dedicated-machines-designed-for-use-with-plover"></span> = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price |- | [https://nolltronics.com/product/ecosteno/ Ecosteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions Setup Instructions for Serial] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard Beginner’s Guide] for more information.<span id="known-supported-keyboards"></span> == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <div class="figure"> <img src="https://imgur.com/cjWDy2J"> </div><span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} [[Category:Plover]] db2b1ea5e9850fcc6ff25c07a3886d77bed6f610 115 114 2024-02-05T22:39:25Z Rice 1 /* Keytoppers */ wikitext text/x-wiki This page lists the machines known to work with Plover. ----- <!-- TOC --> * [[#dedicated-machines-designed-for-use-with-plover|Dedicated machines designed for use with Plover]] ** [[#commercially-available-hobbyist-machines|Commercially Available Hobbyist Machines]] ** [[#diy-machines|DIY Machines]] ** [[#out-of-production-machines|Out-of-production Machines]] * [[#stenotype-machines|Stenotype Machines]] ** [[#supported-protocols|Supported protocols]] ** [[#known-supported-stenotypes|Known supported stenotypes]] * [[#keyboards|Keyboards]] ** [[#whats-nkro|What’s NKRO?]] ** [[#how-do-i-know-if-my-keyboard-has-nkro|How do I know if my keyboard has NKRO]] *** [[#test-1-double-shift|Test #1: Double Shift]] *** [[#test-2-keyboard-ghosting-test|Test #2: Keyboard Ghosting Test]] ** [[#what-if-my-keyboard-is-not-capable-of-nkro|What if my keyboard is not capable of NKRO?]] ** [[#known-supported-keyboards|Known supported keyboards]] *** [[#which-type-of-key-switch-should-i-choose|Which type of key switch should I choose?]] ** [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] *** [[#keytoppers|Keytoppers]] *** [[#keycaps|Keycaps]] ** [[#nkro-keyboards-with-an-ortholinear-layout|NKRO keyboards with an ortholinear layout]] * [[#laptops-with-nkro|Laptops with NKRO]] ** [[#laptops-that-dont-actually-work-with-plover|Laptops that don’t actually work with Plover]] <!-- /TOC --> <span id="dedicated-machines-designed-for-use-with-plover"></span> = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price |- | [https://nolltronics.com/product/ecosteno/ Ecosteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions Setup Instructions for Serial] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard Beginner’s Guide] for more information.<span id="known-supported-keyboards"></span> == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} [[Category:Plover]] d2d52aa5eb9c2ffa7a0ef5dc86856a1f4f563f9e 117 115 2024-02-05T22:56:13Z Rice 1 wikitext text/x-wiki This page lists the machines known to work with Pl = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price |- | [https://nolltronics.com/product/ecosteno/ Ecosteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions Setup Instructions for Serial] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard Beginner’s Guide] for more information.<span id="known-supported-keyboards"></span> == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} [[Category:Plover]] a8dfdae432f7ef0d0252633b5cd407e3a501017e 118 117 2024-02-05T22:56:25Z Rice 1 wikitext text/x-wiki This page lists the machines known to work with Plover = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price |- | [https://nolltronics.com/product/ecosteno/ Ecosteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions Setup Instructions for Serial] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard Beginner’s Guide] for more information.<span id="known-supported-keyboards"></span> == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} [[Category:Plover]] 4ff083d92c04e8cdd8686ad982be1d086c22542f 134 118 2024-02-06T03:17:28Z Rice 1 wikitext text/x-wiki This page lists the machines known to work with Plover = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price |- | [https://nolltronics.com/product/ecosteno/ Ecosteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} [[Category:Plover]] 85700edf7680aa4e08067d4b910de65de7e1f7df Category:Pages with broken file links 14 28 113 2024-02-05T22:30:42Z Rice 1 Created page with "Broken file links" wikitext text/x-wiki Broken file links 7eabfb27f0fa8fb1e08df09c469078b1c6e0e1c7 Dictionary format 0 11 119 82 2024-02-05T23:06:07Z Rice 1 Replace github md with mediawiki format wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#plover-control-commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote> == JSON and RTF/CRE == Plover supports two types of dictionaries: * '''JSON''' (the default and recommended format), and * '''RTF/CRE'''. RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote> === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#strokes-and-dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). See this blackbox test for an example. == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#prefixes-infixes-suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#output-modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#keyboard-shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#retroactively-delete-space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#prefixes-infixes-and-suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#retroactively-add-space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#prefixes-infixes-and-suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#do-nothing-translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#keyboard-shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>…and more |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the definition file in <nowiki><code>python-xlib</code></nowiki> for the key names. |} Consult the code for the full list of supported keyboard shortcut keys. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#canceling-formatting-of-next-word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] 8502a3379f2e7952da574ab03d7982291d850543 124 119 2024-02-05T23:23:06Z Rice 1 fix relative links wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#plover-control-commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote> == JSON and RTF/CRE == Plover supports two types of dictionaries: * '''JSON''' (the default and recommended format), and * '''RTF/CRE'''. RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote> === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). See this blackbox test for an example. == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>…and more |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the definition file in <nowiki><code>python-xlib</code></nowiki> for the key names. |} Consult the code for the full list of supported keyboard shortcut keys. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] 118af42f5dc63225a75a2650032ef8aeada814d0 125 124 2024-02-05T23:24:43Z Rice 1 fix relative link wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote> == JSON and RTF/CRE == Plover supports two types of dictionaries: * '''JSON''' (the default and recommended format), and * '''RTF/CRE'''. RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote> === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). See this blackbox test for an example. == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>…and more |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the definition file in <nowiki><code>python-xlib</code></nowiki> for the key names. |} Consult the code for the full list of supported keyboard shortcut keys. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] 135aad1c40bb4e94f754e86e9c95cfee414922b4 126 125 2024-02-05T23:28:11Z Rice 1 add external links wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote> == JSON and RTF/CRE == Plover supports two types of dictionaries: * '''JSON''' (the default and recommended format), and * '''RTF/CRE'''. RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote> === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] 2b737dfa1b3d787fcf9326306ac2f51f67198b9d Built-in tools 0 12 120 83 2024-02-05T23:09:18Z Rice 1 wikitext text/x-wiki Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window. == Configure Plover == The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things. == Paper tape == Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "show paper tape" checkbox in the interface tab. == Stroke suggestions == When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "show suggestions" checkbox in the interface tab of the configuration window. == Lookup tool == A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#dictionary-editor|dictionary editor]]. == Plugins manager == The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover. Some plugins are themselves tools. == Main window == The main window can be used to reconnect the machine, enable and disable output and manage dictionaries. === Dictionaries field === This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown: * A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list. * If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default. * A checkbox to enable and disable the dictionary. * The name of the dictionary. Below the list of dictionaries, there are buttons to do the following actions: * Undo the last dictionary adding, deleting or reordering operation. * Use the <nowiki>[[dictionary editor|Built-in tools#Dictionary editor]]</nowiki> on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in. * Remove a dictionary from the list. * Add a dictionary to the list. * <nowiki>[[Add an entry|Built-in tools#Add translation dialog]]</nowiki> to the selected dictionary. * Move the selected dictionaries up on the list. * Move the selected dictionaries down on the list. == Dictionary editor == The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries. At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field. The strokes and translations on the list are editable. Below the list are three buttons: * Undo last action. * Remove selected entry/entries. * Add a new entry. == Add translation dialog == A dialog to add an entry to a dictionary. It has three fields: * Which dictionary to add an entry to. * The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries. * What they should translate to. Below this field you should see any strokes already mapped to the translation. * A cancel button that closes the dialog. * An okay button that adds the entry and closes the dialog. [[Category:Plover]] 06d752eebd2b840c6eef0cdefd91f529fceaa750 121 120 2024-02-05T23:09:48Z Rice 1 /* Lookup tool */ wikitext text/x-wiki Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window. == Configure Plover == The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things. == Paper tape == Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "show paper tape" checkbox in the interface tab. == Stroke suggestions == When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "show suggestions" checkbox in the interface tab of the configuration window. == Lookup tool == A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]]. == Plugins manager == The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover. Some plugins are themselves tools. == Main window == The main window can be used to reconnect the machine, enable and disable output and manage dictionaries. === Dictionaries field === This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown: * A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list. * If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default. * A checkbox to enable and disable the dictionary. * The name of the dictionary. Below the list of dictionaries, there are buttons to do the following actions: * Undo the last dictionary adding, deleting or reordering operation. * Use the <nowiki>[[dictionary editor|Built-in tools#Dictionary editor]]</nowiki> on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in. * Remove a dictionary from the list. * Add a dictionary to the list. * <nowiki>[[Add an entry|Built-in tools#Add translation dialog]]</nowiki> to the selected dictionary. * Move the selected dictionaries up on the list. * Move the selected dictionaries down on the list. == Dictionary editor == The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries. At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field. The strokes and translations on the list are editable. Below the list are three buttons: * Undo last action. * Remove selected entry/entries. * Add a new entry. == Add translation dialog == A dialog to add an entry to a dictionary. It has three fields: * Which dictionary to add an entry to. * The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries. * What they should translate to. Below this field you should see any strokes already mapped to the translation. * A cancel button that closes the dialog. * An okay button that adds the entry and closes the dialog. [[Category:Plover]] 9be4e1514d91c31931271cf3a694d56ba9ad25e1 122 121 2024-02-05T23:12:04Z Rice 1 /* Dictionaries field */ wikitext text/x-wiki Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window. == Configure Plover == The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things. == Paper tape == Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "show paper tape" checkbox in the interface tab. == Stroke suggestions == When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "show suggestions" checkbox in the interface tab of the configuration window. == Lookup tool == A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]]. == Plugins manager == The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover. Some plugins are themselves tools. == Main window == The main window can be used to reconnect the machine, enable and disable output and manage dictionaries. === Dictionaries field === This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown: * A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list. * If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default. * A checkbox to enable and disable the dictionary. * The name of the dictionary. Below the list of dictionaries, there are buttons to do the following actions: * Undo the last dictionary adding, deleting or reordering operation. * Use the [[Built-in Tools#Dictionary editor|dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in. * Remove a dictionary from the list. * Add a dictionary to the list. * [[Built-in Tools#Add translation dialog|Add an entry]] to the selected dictionary. * Move the selected dictionaries up on the list. * Move the selected dictionaries down on the list. == Dictionary editor == The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries. At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field. The strokes and translations on the list are editable. Below the list are three buttons: * Undo last action. * Remove selected entry/entries. * Add a new entry. == Add translation dialog == A dialog to add an entry to a dictionary. It has three fields: * Which dictionary to add an entry to. * The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries. * What they should translate to. Below this field you should see any strokes already mapped to the translation. * A cancel button that closes the dialog. * An okay button that adds the entry and closes the dialog. [[Category:Plover]] bd3f7680d1a97b89a66204e0ac104f6a739e81c5 Open Steno Project timeline 0 13 123 84 2024-02-05T23:17:13Z Rice 1 Replace md with mediawiki syntax wikitext text/x-wiki The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. === September 2005 to March 2007 (18 months) === <blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute. === 2007 === <blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. === 2008 === <blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? === October 2009 === <blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. === June 2010 === <blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series. === October 2010 === <blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. === December 2010 === <blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. === April 2011 === <blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade). === October 2011 === <blockquote>Plover</blockquote>Hesky Fisher starts working on Plover. === May 2012 === <blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. === April 2013 === <blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. === July 2013 === <blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. === August 2013 === <blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus]. === September 2013 === <blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. === January 2014 === <blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects. === April 2014 === <blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard. === Summer 2015 === <blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. === August 2015 === <blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. === September 2015 === <blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. === December 2015 === <blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches. === March 2016 === <blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. === April 2016 === <blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === October 2016 === <blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig]. === November 2016 === <blockquote>Plover</blockquote>Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. === The future - 2017 and onwards === Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. === January 2019 === <blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. === February 2021 === <blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. === April 2021 === <blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them. === July 2021 === <blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. [[Category:Plover]] bb4c50545da281b456d59eb6cfd5728277f71252 FAQ 0 15 128 86 2024-02-06T02:34:32Z Rice 1 wikitext text/x-wiki == Plover == === What is stenography? === ''Stan's Quick and Dirty: How Stenography Works'' Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Typing World Record |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |360 WPM |} In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno. Plover is available on Windows, Mac and Linux. To get started, follow the Beginner's Guide. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is here. === Who's responsible for Plover's development? === Plover was originally created by Mirabai Knight and Joshua Harlan Lifton, and is the software arm of The Open Steno Project, an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin. === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused Mirabai Knight to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as Dvorak or Colemak), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like Chopin's Fantasie Impromptu. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — Learn Plover!</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like Rachmaninoff's Prelude in G Minor. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |<nowiki><img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" /></nowiki><nowiki><br></nowiki>(click to view video — 3:25) |<nowiki><img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" /></nowiki><nowiki><br></nowiki>(click to view video — 0:30) |<nowiki><img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" /></nowiki><nowiki><br></nowiki>(click to view video — 1:05) |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |<nowiki><img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" /></nowiki><nowiki><br></nowiki>(click to view video — 3:36) |<nowiki><img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" /></nowiki><nowiki><br></nowiki>(click to view video — 2:00) |<nowiki><img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" /></nowiki><nowiki><br></nowiki>(click to view video — 2:08:59) |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the world record is 360wpm. Audiobooks are narrated at around 150wpm (source from an Audible/iTunes book provider). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is Mirabai's article on the ergonomic argument for stenography. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the Plover discord, people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]]) # Plover software, and suitable low cost hardware, didn't exist until recently.Will stenography be replaced with automatic voice recognition? Mirabai Knight has done a presentation on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these links to the community. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * Contributing code * Reporting issues * Editing this wiki * Getting involved in the community * Donating money * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The Beginner's Guide has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * NKRO, so you don't have to arpeggiate. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to adapt a keyboard to work better for steno. * Lighter keys, so it's less fatiguing. Find more information in this section of the beginner's guide, or in the keyboards section of the hardware page. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in her review of the Georgi that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other hobbyist steno machines. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key Thomas Baart's post "Exploring Professional Stenotype Machines" goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the dictionary format for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a pull request for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * Emily Symbols, for typing symbols (including those not in the main Plover dictionary) * Emily Modifiers, for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * Abby's Left Hand Modifiers, for typing with modifiers but keeping the right hand free * Plover Emoji, for typing emoji === Can I use Plover for programming? === Yes, and many people do! For example: * The author of Art of Chording (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: Coding in Stenography, Quick Demo, Raw unedited steno coding demo * Paul Fioravanti recreated DHH's rails 7 demo using steno: Rails 7: The Steno Demo * Mirabai Knight, who started Plover, has a demo of her transcribing some of Plover's python source code To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** Emily Symbols for writing symbols. ** Dictionary collections which include some programming related dictionaries *** stenodict a user-submitted collection of dictionaries *** Di's steno dictionaries, the creator of Typey Type (and whose programming dictionaries can be practiced on the site) *** Emily's dictionaries *** Antistic's dictionaries *** Paul's dictionaries *** Josiah's dictionaries * For writing in snake/camel/pascal/etc. case: You can set typing modes, control capitalisation, or type symbols like <code>_</code>. There are also various plugins (see a list here) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#can-i-use-plover-for-normal-computer-use|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current chorded systems that have been made. If you want to fingerspell with non-English letters, JorWat has a fingerspelling dictionary for diacritics (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The #multilingual channel on the discord server is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the 2021 community survey results to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a youtube video showing his progress over 5 months, where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the glossary. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue #72) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#is-plover-going-to-put-cat-software-companies-out-of-business|Is Plover going to put CAT software companies out of business?]]. == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" /> Steno Arcade is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. Plover Dictionary Update Demo<nowiki><br></nowiki> <nowiki><img src="https://img.youtube.com/vi/eSU5JlVXT1A/0.jpg" alt="Plover Dictionary Update Demo" /></nowiki><nowiki><br></nowiki> (click to view video — 1:44) === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the stenotype machine section in supported hardware for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] 9429f00ce7060811ed06abcfef623daaeec18282 129 128 2024-02-06T02:38:53Z Rice 1 wikitext text/x-wiki == Plover == === What is stenography? === <youtube>62l64Acfidc</youtube> Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Typing World Record |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |360 WPM |} In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno. Plover is available on Windows, Mac and Linux. To get started, follow the Beginner's Guide. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is here. === Who's responsible for Plover's development? === Plover was originally created by Mirabai Knight and Joshua Harlan Lifton, and is the software arm of The Open Steno Project, an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin. === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused Mirabai Knight to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as Dvorak or Colemak), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like Chopin's Fantasie Impromptu. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — Learn Plover!</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like Rachmaninoff's Prelude in G Minor. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |<nowiki><img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" /></nowiki><nowiki><br></nowiki>(click to view video — 3:25) |<nowiki><img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" /></nowiki><nowiki><br></nowiki>(click to view video — 0:30) |<nowiki><img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" /></nowiki><nowiki><br></nowiki>(click to view video — 1:05) |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |<nowiki><img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" /></nowiki><nowiki><br></nowiki>(click to view video — 3:36) |<nowiki><img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" /></nowiki><nowiki><br></nowiki>(click to view video — 2:00) |<nowiki><img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" /></nowiki><nowiki><br></nowiki>(click to view video — 2:08:59) |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the world record is 360wpm. Audiobooks are narrated at around 150wpm (source from an Audible/iTunes book provider). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is Mirabai's article on the ergonomic argument for stenography. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the Plover discord, people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]]) # Plover software, and suitable low cost hardware, didn't exist until recently.Will stenography be replaced with automatic voice recognition? Mirabai Knight has done a presentation on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these links to the community. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * Contributing code * Reporting issues * Editing this wiki * Getting involved in the community * Donating money * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The Beginner's Guide has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * NKRO, so you don't have to arpeggiate. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to adapt a keyboard to work better for steno. * Lighter keys, so it's less fatiguing. Find more information in this section of the beginner's guide, or in the keyboards section of the hardware page. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in her review of the Georgi that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other hobbyist steno machines. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key Thomas Baart's post "Exploring Professional Stenotype Machines" goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the dictionary format for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a pull request for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * Emily Symbols, for typing symbols (including those not in the main Plover dictionary) * Emily Modifiers, for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * Abby's Left Hand Modifiers, for typing with modifiers but keeping the right hand free * Plover Emoji, for typing emoji === Can I use Plover for programming? === Yes, and many people do! For example: * The author of Art of Chording (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: Coding in Stenography, Quick Demo, Raw unedited steno coding demo * Paul Fioravanti recreated DHH's rails 7 demo using steno: Rails 7: The Steno Demo * Mirabai Knight, who started Plover, has a demo of her transcribing some of Plover's python source code To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** Emily Symbols for writing symbols. ** Dictionary collections which include some programming related dictionaries *** stenodict a user-submitted collection of dictionaries *** Di's steno dictionaries, the creator of Typey Type (and whose programming dictionaries can be practiced on the site) *** Emily's dictionaries *** Antistic's dictionaries *** Paul's dictionaries *** Josiah's dictionaries * For writing in snake/camel/pascal/etc. case: You can set typing modes, control capitalisation, or type symbols like <code>_</code>. There are also various plugins (see a list here) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#can-i-use-plover-for-normal-computer-use|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current chorded systems that have been made. If you want to fingerspell with non-English letters, JorWat has a fingerspelling dictionary for diacritics (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The #multilingual channel on the discord server is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the 2021 community survey results to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a youtube video showing his progress over 5 months, where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the glossary. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue #72) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#is-plover-going-to-put-cat-software-companies-out-of-business|Is Plover going to put CAT software companies out of business?]]. == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" /> Steno Arcade is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. Plover Dictionary Update Demo<nowiki><br></nowiki> <nowiki><img src="https://img.youtube.com/vi/eSU5JlVXT1A/0.jpg" alt="Plover Dictionary Update Demo" /></nowiki><nowiki><br></nowiki> (click to view video — 1:44) === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the stenotype machine section in supported hardware for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] 67a0ad437f0688ec6fecb4c8c39ff14ef17e2db2 130 129 2024-02-06T02:45:50Z Rice 1 wikitext text/x-wiki == Plover == === What is stenography? === <youtube>62l64Acfidc</youtube> Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Typing World Record |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |360 WPM |} In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#How long does it take to learn?|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno. Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]]. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here]. === Who's responsible for Plover's development? === Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin. === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu]. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor]. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |<nowiki><img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" /></nowiki><nowiki><br></nowiki>(click to view video — 3:25) |<nowiki><img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" /></nowiki><nowiki><br></nowiki>(click to view video — 0:30) |<nowiki><img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" /></nowiki><nowiki><br></nowiki>(click to view video — 1:05) |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |<nowiki><img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" /></nowiki><nowiki><br></nowiki>(click to view video — 3:36) |<nowiki><img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" /></nowiki><nowiki><br></nowiki>(click to view video — 2:00) |<nowiki><img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" /></nowiki><nowiki><br></nowiki>(click to view video — 2:08:59) |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the world record is 360wpm. Audiobooks are narrated at around 150wpm (source from an Audible/iTunes book provider). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is Mirabai's article on the ergonomic argument for stenography. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the Plover discord, people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]]) # Plover software, and suitable low cost hardware, didn't exist until recently.Will stenography be replaced with automatic voice recognition? Mirabai Knight has done a presentation on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these links to the community. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * Contributing code * Reporting issues * Editing this wiki * Getting involved in the community * Donating money * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The Beginner's Guide has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * NKRO, so you don't have to arpeggiate. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to adapt a keyboard to work better for steno. * Lighter keys, so it's less fatiguing. Find more information in this section of the beginner's guide, or in the keyboards section of the hardware page. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in her review of the Georgi that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other hobbyist steno machines. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key Thomas Baart's post "Exploring Professional Stenotype Machines" goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the dictionary format for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a pull request for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * Emily Symbols, for typing symbols (including those not in the main Plover dictionary) * Emily Modifiers, for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * Abby's Left Hand Modifiers, for typing with modifiers but keeping the right hand free * Plover Emoji, for typing emoji === Can I use Plover for programming? === Yes, and many people do! For example: * The author of Art of Chording (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: Coding in Stenography, Quick Demo, Raw unedited steno coding demo * Paul Fioravanti recreated DHH's rails 7 demo using steno: Rails 7: The Steno Demo * Mirabai Knight, who started Plover, has a demo of her transcribing some of Plover's python source code To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** Emily Symbols for writing symbols. ** Dictionary collections which include some programming related dictionaries *** stenodict a user-submitted collection of dictionaries *** Di's steno dictionaries, the creator of Typey Type (and whose programming dictionaries can be practiced on the site) *** Emily's dictionaries *** Antistic's dictionaries *** Paul's dictionaries *** Josiah's dictionaries * For writing in snake/camel/pascal/etc. case: You can set typing modes, control capitalisation, or type symbols like <code>_</code>. There are also various plugins (see a list here) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#can-i-use-plover-for-normal-computer-use|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current chorded systems that have been made. If you want to fingerspell with non-English letters, JorWat has a fingerspelling dictionary for diacritics (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The #multilingual channel on the discord server is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the 2021 community survey results to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a youtube video showing his progress over 5 months, where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the glossary. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue #72) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#is-plover-going-to-put-cat-software-companies-out-of-business|Is Plover going to put CAT software companies out of business?]]. == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" /> Steno Arcade is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. Plover Dictionary Update Demo<nowiki><br></nowiki> <nowiki><img src="https://img.youtube.com/vi/eSU5JlVXT1A/0.jpg" alt="Plover Dictionary Update Demo" /></nowiki><nowiki><br></nowiki> (click to view video — 1:44) === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the stenotype machine section in supported hardware for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] b361636785c86ccae7b7df616b060bf933432c17 131 130 2024-02-06T02:48:00Z Rice 1 /* What does using Plover look like? */ wikitext text/x-wiki == Plover == === What is stenography? === <youtube>62l64Acfidc</youtube> Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Typing World Record |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |360 WPM |} In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#How long does it take to learn?|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno. Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]]. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here]. === Who's responsible for Plover's development? === Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin. === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu]. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor]. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |<img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />(click to view video — 3:25) |<img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />(click to view video — 0:30) |<img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />(click to view video — 1:05) |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |<img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />(click to view video — 3:36) |<img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />(click to view video — 2:00) |<img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />(click to view video — 2:08:59) |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the world record is 360wpm. Audiobooks are narrated at around 150wpm (source from an Audible/iTunes book provider). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is Mirabai's article on the ergonomic argument for stenography. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the Plover discord, people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]]) # Plover software, and suitable low cost hardware, didn't exist until recently.Will stenography be replaced with automatic voice recognition? Mirabai Knight has done a presentation on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these links to the community. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * Contributing code * Reporting issues * Editing this wiki * Getting involved in the community * Donating money * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The Beginner's Guide has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * NKRO, so you don't have to arpeggiate. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to adapt a keyboard to work better for steno. * Lighter keys, so it's less fatiguing. Find more information in this section of the beginner's guide, or in the keyboards section of the hardware page. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in her review of the Georgi that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other hobbyist steno machines. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key Thomas Baart's post "Exploring Professional Stenotype Machines" goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the dictionary format for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a pull request for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * Emily Symbols, for typing symbols (including those not in the main Plover dictionary) * Emily Modifiers, for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * Abby's Left Hand Modifiers, for typing with modifiers but keeping the right hand free * Plover Emoji, for typing emoji === Can I use Plover for programming? === Yes, and many people do! For example: * The author of Art of Chording (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: Coding in Stenography, Quick Demo, Raw unedited steno coding demo * Paul Fioravanti recreated DHH's rails 7 demo using steno: Rails 7: The Steno Demo * Mirabai Knight, who started Plover, has a demo of her transcribing some of Plover's python source code To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** Emily Symbols for writing symbols. ** Dictionary collections which include some programming related dictionaries *** stenodict a user-submitted collection of dictionaries *** Di's steno dictionaries, the creator of Typey Type (and whose programming dictionaries can be practiced on the site) *** Emily's dictionaries *** Antistic's dictionaries *** Paul's dictionaries *** Josiah's dictionaries * For writing in snake/camel/pascal/etc. case: You can set typing modes, control capitalisation, or type symbols like <code>_</code>. There are also various plugins (see a list here) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#can-i-use-plover-for-normal-computer-use|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current chorded systems that have been made. If you want to fingerspell with non-English letters, JorWat has a fingerspelling dictionary for diacritics (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The #multilingual channel on the discord server is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the 2021 community survey results to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a youtube video showing his progress over 5 months, where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the glossary. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue #72) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#is-plover-going-to-put-cat-software-companies-out-of-business|Is Plover going to put CAT software companies out of business?]]. == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" /> Steno Arcade is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. Plover Dictionary Update Demo<nowiki><br></nowiki> <nowiki><img src="https://img.youtube.com/vi/eSU5JlVXT1A/0.jpg" alt="Plover Dictionary Update Demo" /></nowiki><nowiki><br></nowiki> (click to view video — 1:44) === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the stenotype machine section in supported hardware for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] 1a097f70bc0925f1f030aa28680dae1391b74277 132 131 2024-02-06T02:48:21Z Rice 1 /* What does using Plover look like? */ wikitext text/x-wiki == Plover == === What is stenography? === <youtube>62l64Acfidc</youtube> Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Typing World Record |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |360 WPM |} In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#How long does it take to learn?|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno. Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]]. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here]. === Who's responsible for Plover's development? === Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin. === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu]. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor]. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />(click to view video — 3:25)] |<img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />(click to view video — 0:30) |<img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />(click to view video — 1:05) |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |<img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />(click to view video — 3:36) |<img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />(click to view video — 2:00) |<img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />(click to view video — 2:08:59) |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the world record is 360wpm. Audiobooks are narrated at around 150wpm (source from an Audible/iTunes book provider). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is Mirabai's article on the ergonomic argument for stenography. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the Plover discord, people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]]) # Plover software, and suitable low cost hardware, didn't exist until recently.Will stenography be replaced with automatic voice recognition? Mirabai Knight has done a presentation on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these links to the community. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * Contributing code * Reporting issues * Editing this wiki * Getting involved in the community * Donating money * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The Beginner's Guide has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * NKRO, so you don't have to arpeggiate. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to adapt a keyboard to work better for steno. * Lighter keys, so it's less fatiguing. Find more information in this section of the beginner's guide, or in the keyboards section of the hardware page. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in her review of the Georgi that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other hobbyist steno machines. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key Thomas Baart's post "Exploring Professional Stenotype Machines" goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the dictionary format for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a pull request for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * Emily Symbols, for typing symbols (including those not in the main Plover dictionary) * Emily Modifiers, for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * Abby's Left Hand Modifiers, for typing with modifiers but keeping the right hand free * Plover Emoji, for typing emoji === Can I use Plover for programming? === Yes, and many people do! For example: * The author of Art of Chording (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: Coding in Stenography, Quick Demo, Raw unedited steno coding demo * Paul Fioravanti recreated DHH's rails 7 demo using steno: Rails 7: The Steno Demo * Mirabai Knight, who started Plover, has a demo of her transcribing some of Plover's python source code To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** Emily Symbols for writing symbols. ** Dictionary collections which include some programming related dictionaries *** stenodict a user-submitted collection of dictionaries *** Di's steno dictionaries, the creator of Typey Type (and whose programming dictionaries can be practiced on the site) *** Emily's dictionaries *** Antistic's dictionaries *** Paul's dictionaries *** Josiah's dictionaries * For writing in snake/camel/pascal/etc. case: You can set typing modes, control capitalisation, or type symbols like <code>_</code>. There are also various plugins (see a list here) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#can-i-use-plover-for-normal-computer-use|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current chorded systems that have been made. If you want to fingerspell with non-English letters, JorWat has a fingerspelling dictionary for diacritics (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The #multilingual channel on the discord server is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the 2021 community survey results to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a youtube video showing his progress over 5 months, where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the glossary. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue #72) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#is-plover-going-to-put-cat-software-companies-out-of-business|Is Plover going to put CAT software companies out of business?]]. == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" /> Steno Arcade is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. Plover Dictionary Update Demo<nowiki><br></nowiki> <nowiki><img src="https://img.youtube.com/vi/eSU5JlVXT1A/0.jpg" alt="Plover Dictionary Update Demo" /></nowiki><nowiki><br></nowiki> (click to view video — 1:44) === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the stenotype machine section in supported hardware for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] d629c5b2fc3260a593a45d12a6764b45bbcfccd8 133 132 2024-02-06T03:13:11Z Rice 1 convert to media wiki format wikitext text/x-wiki == Plover == === What is stenography? === <youtube>62l64Acfidc</youtube> Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Typing World Record |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |360 WPM |} In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#How long does it take to learn?|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno. Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]]. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here]. === Who's responsible for Plover's development? === Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin. === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu]. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor]. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />(click to view video — 3:25)] |[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />(click to view video — 0:30)] |[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />(click to view video — 1:05)] |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />(click to view video — 3:36)] |[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />(click to view video — 2:00)] |[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />(click to view video — 2:08:59)] |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing) the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community Plover discord], people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]]) # Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently. === Will stenography be replaced with automatic voice recognition? === Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these [[The Steno Community|links to the community]]. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code] * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues] * [[Plover Wiki#Contributing to the Wiki|Editing this wiki]] * [[The Steno Community|Getting involved in the community]] * [https://www.openstenoproject.org/donate/ Donating money] * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]]. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno. * Lighter keys, so it's less fatiguing. [[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]]. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]]. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key [https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary) * [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free * [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji === Can I use Plover for programming? === Yes, and many people do! For example: * The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo] * [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo] * Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code] To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols. ** Dictionary collections which include some programming related dictionaries *** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries *** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site]) *** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries] *** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries] *** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries] *** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries] * For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made. If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the [[glossary]]. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72]) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]]. == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" /> [http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. <youtube>eSU5JlVXT1A</youtube> === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] 8cd0b29257476af6635233ac4482c75cfba94f64 136 133 2024-02-06T03:24:50Z Rice 1 wikitext text/x-wiki == Plover == === What is stenography? === <youtube>62l64Acfidc</youtube> Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Typing World Record |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |360 WPM |} In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#How long does it take to learn?|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno. Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]]. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here]. === Who's responsible for Plover's development? === Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin. === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu]. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor]. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s (click to view video — 3:25)] |[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY (click to view video — 0:30)] |[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI (click to view video — 1:05)] |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 (click to view video — 3:36)] |[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w (click to view video — 2:00)] |[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY (click to view video — 2:08:59)] |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing) the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community Plover discord], people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]]) # Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently. === Will stenography be replaced with automatic voice recognition? === Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these [[The Steno Community|links to the community]]. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code] * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues] * [[Plover Wiki#Contributing to the Wiki|Editing this wiki]] * [[The Steno Community|Getting involved in the community]] * [https://www.openstenoproject.org/donate/ Donating money] * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]]. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno. * Lighter keys, so it's less fatiguing. [[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]]. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]]. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key [https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary) * [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free * [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji === Can I use Plover for programming? === Yes, and many people do! For example: * The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo] * [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo] * Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code] To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols. ** Dictionary collections which include some programming related dictionaries *** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries *** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site]) *** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries] *** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries] *** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries] *** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries] * For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made. If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the [[glossary]]. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72]) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]]. == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" /> [http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. <youtube>eSU5JlVXT1A</youtube> === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] cfd7804c8a7f173b6d0fd95f91ede04290a40715 137 136 2024-02-06T03:25:51Z Rice 1 /* What does using Plover look like? */ wikitext text/x-wiki == Plover == === What is stenography? === <youtube>62l64Acfidc</youtube> Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Typing World Record |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |360 WPM |} In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#How long does it take to learn?|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno. Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]]. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here]. === Who's responsible for Plover's development? === Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin. === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu]. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor]. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)] |[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)] |[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)] |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)] |[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)] |[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)] |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing) the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community Plover discord], people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]]) # Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently. === Will stenography be replaced with automatic voice recognition? === Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these [[The Steno Community|links to the community]]. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code] * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues] * [[Plover Wiki#Contributing to the Wiki|Editing this wiki]] * [[The Steno Community|Getting involved in the community]] * [https://www.openstenoproject.org/donate/ Donating money] * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]]. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno. * Lighter keys, so it's less fatiguing. [[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]]. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]]. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key [https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary) * [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free * [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji === Can I use Plover for programming? === Yes, and many people do! For example: * The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo] * [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo] * Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code] To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols. ** Dictionary collections which include some programming related dictionaries *** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries *** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site]) *** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries] *** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries] *** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries] *** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries] * For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made. If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the [[glossary]]. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72]) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]]. == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" /> [http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. <youtube>eSU5JlVXT1A</youtube> === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] cc12ad8c30555d26c831e63320ec79826166bdd2 138 137 2024-02-06T03:27:03Z Rice 1 /* What is Steno Arcade? */ wikitext text/x-wiki == Plover == === What is stenography? === <youtube>62l64Acfidc</youtube> Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Typing World Record |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |360 WPM |} In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#How long does it take to learn?|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno. Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]]. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here]. === Who's responsible for Plover's development? === Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin. === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu]. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor]. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)] |[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)] |[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)] |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)] |[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)] |[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)] |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing) the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community Plover discord], people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]]) # Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently. === Will stenography be replaced with automatic voice recognition? === Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these [[The Steno Community|links to the community]]. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code] * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues] * [[Plover Wiki#Contributing to the Wiki|Editing this wiki]] * [[The Steno Community|Getting involved in the community]] * [https://www.openstenoproject.org/donate/ Donating money] * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]]. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno. * Lighter keys, so it's less fatiguing. [[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]]. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]]. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key [https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary) * [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free * [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji === Can I use Plover for programming? === Yes, and many people do! For example: * The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo] * [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo] * Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code] To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols. ** Dictionary collections which include some programming related dictionaries *** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries *** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site]) *** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries] *** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries] *** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries] *** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries] * For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made. If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the [[glossary]]. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72]) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]]. == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="https://cdn.cloudflare.steamstatic.com/steam/apps/449000/header.jpg?t=1567716732" alt="Steno Arcade" /> [http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. <youtube>eSU5JlVXT1A</youtube> === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] 725d8b6e1f6184bfb6e58d6a588e17f411db1b25 Setting up a Stentura Protege with Plover 0 29 135 2024-02-06T03:22:28Z Rice 1 Created page with "Congratulations on getting a Stentura Protege. This page will show you how to connect it to your computer and setup Plover. [https://imgur.com/vKbiTOJ Photo of my Protege. Note: Mine did not come with the removable name plate.] == What you need == You will need two cables: # '''Data Cable:''' USB to RS-232 DB9 Male Serial Cable. (Make sure the cord has a male serial with 9 pins) * [http://a.co/9KWXIMP Amazon link] # '''Power Cable:''' USB 2.0 Cable - A-Male to B-Mal..." wikitext text/x-wiki Congratulations on getting a Stentura Protege. This page will show you how to connect it to your computer and setup Plover. [https://imgur.com/vKbiTOJ Photo of my Protege. Note: Mine did not come with the removable name plate.] == What you need == You will need two cables: # '''Data Cable:''' USB to RS-232 DB9 Male Serial Cable. (Make sure the cord has a male serial with 9 pins) * [http://a.co/9KWXIMP Amazon link] # '''Power Cable:''' USB 2.0 Cable - A-Male to B-Male. (The Stentura Protege can be powered either by USB or by a proprietary A/C charger. Your machine may come with a power chord. Mine did not.) * [http://a.co/fQDbqWD Amazon link] Note: Both of those Amazon links are for 6 foot cables. Make sure you get a cord long enough for your setup. To use USB you need to install the <code>plover_stenograph_usb</code> plugin from the plugins manager and if you're on Windows you'll need to install the USB drivers from Stenograph. == Serial Setup == '''Step 1.''' Connect power cord: Connect USB A-to-B cable to Stentura machine and computer or use the AC adapter. Your machine now has power. On the front of your Stentura is a row of 6 grey buttons. Press and hold the 1st one to turn it on. '''Step 2.''' Connect data cord: Connect serial-to-USB cable to Stentura machine and computer. [https://imgur.com/wGc9y4p Photo of both cables connected.] '''Step 3.''' Download the latest version of Plover for your OS. '''Step 4.''' Open Plover. Click the configure button. A new configuration window will open. Click the tab for machine. Select Stentura from the drop down menu. Go back to the window where you clicked the configure button. Click the radio button "enable" to enable output. Click the reload button (arrows going in a circle) until the dot turns green and it says "Stentura: Connected" '''Step 5.''' Thanks to Plover, your Stentura can now type on your computer. Start learning Steno with Plover [https://www.openstenoproject.org/learn-plover/lesson-1-fingers-and-keys.html lessons] and [http://stenoknight.com/plover/haxeploverlearn/ interactive drills]. == Something went wrong == I ran into a problem because I was using an older Serial-to-USB cable and Windows was not able to load the correct Prolific drivers for the cable. I found a solution. [http://www.totalcardiagnostics.com/support/Knowledgebase/Article/View/92/20/prolific-usb-to-serial-fix-official-solution-to-code-10-error This site] explains the problem and gives you a link to download the right drivers. == Stentura Protege Manual == [https://www.stenograph.com/content/files/documents/Stentura%20Protege%20User%20Guide.pdf Link to user guide PDF] == Stop The Beeping == My Stentura Protege did not come with a battery. As long as it has power it runs just fine, but it makes an annoying little beep every minute. This is the low battery beep and it beeps even if you have no battery connected. I searched through the manual and did not see a way to disable this. But, I discovered two approaches to remove the beeping. I will explain how below. I was successful but please try this at your own risk. '''What is making the beep?''' The beep is made by a small little speaker called a Piezo Electric Buzzer (cylinder with hole in it and plus sign). It is soldered to the circuit board and labeled "Alarm." (If you are curious, you can learn more about how these work in this [https://www.youtube.com/watch?v=77h1JhD9Syw video].) '''Opening up the machine''' To see this beeping speaker you have to turn the machine over. Then, remove some screws. There are two sets of different sized screws. Make sure you keep track of which screws go where. (Hint: The smaller screws go with the metal washers. [https://imgur.com/P0RR4dy Photo].) Take the back cover off carefully because the battery wires are still attached to the case. [https://imgur.com/kTWBKbM Photo]. Locate the beeping speaker. It is labeled Alarm on the circuit board. [https://imgur.com/4kgY1kC Photo]. '''Option 1''': Mute the speaker by putting a small bit of tape over the hole next to the plus sign shown in this [https://imgur.com/4kgY1kC photo]. I used masking tape, but you might want to try experimenting with other types of tapes. This will lower the volume a lot and is non-destructive. '''Option 2''': Permanently remove the ability of your stenograph to make sounds. This will destructively remove all capabilities of your machine to make beeping sounds. Make sure you really want to go in this direction before moving forward. If you plan on using this machine with a battery, the low battery beep could be useful. I plan on only using it plugged in and I don't plan on getting a battery. I successfully completed this modification, but please do this at your own risk. The speaker, a Piezo Electric Buzzer makes sound by vibrating a ceramic plate. This can be carefully broken. I used a screw. [https://imgur.com/a/BRrsZ Photo]. Place it into the hole and gently twist. [https://imgur.com/a/mQI5H Photo]. You can plug in the machine again to test if you have successfully disabled the speaker. If you no longer hear the chirp then you have been successful. Alt option: I did not do this, but it should be possible to desolder the Piezo Electric Buzzer from the board. Since I have not done this I can not confirm that this would be without side effects. cde02ae53339ea4adeb57d53a27f79962970c65f Glossary 0 16 139 88 2024-02-06T03:31:53Z Rice 1 wikitext text/x-wiki This glossary will help you with terms that you may come across in the steno community. === Arpeggiate === A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. === Brief === Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>FRIMT</code> (reads: "frimt" and takes only one stroke) === Chord === A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Conflict === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Dragging === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Mandatory === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline. === Misstroke === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Philly Shift === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Shadowing === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Stacking === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Steno Dictionary === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a <nowiki>[[steno theory|Glossary#steno-theory]]</nowiki>, this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Order === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Stroke === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the outline <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. === Steno Theory === A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally. === Suffix folding or tucking === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Untranslate === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Word Boundary === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Write Out === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". === Writing === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] ba4b43d30dd5cd4ee045b20f10145e40f7113661 Using Anki for Learning Stenography 0 30 140 2024-02-06T03:47:28Z Rice 1 Created page with "<markdown> 1. [What is Anki](#what-is-anki) 2. [Setting up Anki](#setting-up-anki) 3. [Making your own deck](#making-your-own-deck) 1. [Custom Fields](#custom-fields) 2. [Custom Cards](#custom-cards) 4. [Pre-made Decks](#pre-made-decks) 5. [Useful Anki Add-ons](#useful-anki-add-ons) 6. [Useful Plover Extensions](#useful-plover-extensions) ## What is Anki Anki is a flashcard program that uses spaced repetition. The basic idea is that if the card is easy you will s..." wikitext text/x-wiki <markdown> 1. [What is Anki](#what-is-anki) 2. [Setting up Anki](#setting-up-anki) 3. [Making your own deck](#making-your-own-deck) 1. [Custom Fields](#custom-fields) 2. [Custom Cards](#custom-cards) 4. [Pre-made Decks](#pre-made-decks) 5. [Useful Anki Add-ons](#useful-anki-add-ons) 6. [Useful Plover Extensions](#useful-plover-extensions) ## What is Anki Anki is a flashcard program that uses spaced repetition. The basic idea is that if the card is easy you will see it less often, and if the card is hard you will see it more often. Anki does not grade you automatically — you have full control. It can be useful for learning many things, and for steno people have used it for memorising briefs and theory rules. ## Setting up Anki 1. Download from here: https://apps.ankiweb.net/ 2. [Make your own deck](#making-your-own-deck) or use a [pre-made deck](#pre-made-decks) ## Making your own deck Making your own deck allows you to have greater control over the cards (e.g. what briefs) The most basic way is to use the default deck and add cards to it. "Front" and "Back" can be whatever you want, though most people put the translation on the front and the steno stroke on the back. ### Custom Fields Instead of just "Front" and "Back", you might want more fields like "Pseudo Steno", "Stroke Diagram", "Notes" etc. 1. [Add a new note type](https://docs.ankiweb.net/editing.html#adding-a-note-type) so that it won't interfere with anything else you might use Anki for 2. [Customise the fields](https://docs.ankiweb.net/editing.html#customizing-fields) and add whatever you want 3. Add the new fields to the card template (see [custom cards](#custom-cards)) ### Custom Cards The default cards have the "Front" field, and when you answer it shows the "Back" field, as well as a reverse card. If you want to show more fields, you'll have to customise your card. See the [anki docs here](https://docs.ankiweb.net/templates/intro.html), including the next few pages, for how to do this. Particular things that are useful for steno are: - [Text to speech](https://docs.ankiweb.net/templates/fields.html#text-to-speech) ``` {{tts en_US:Front}} ``` Read out the text of the card, which is useful if you want to practice from dictation. You can also use the [AwesomeTTS](https://ankiweb.net/shared/info/1436550454) add-on for more voices. - [Field Styling](https://docs.ankiweb.net/templates/styling.html#field-styling) in the card: ``` <span class="diagram">{{Strokes}}</span> ``` in the styling: ```css .diagram { font-family: "Stenodisplay Classic" } ``` There are lots of ways you can style your fields, like making the notes smaller or colour coding your fields. The example here uses [Kaoffie's Steno Font](https://github.com/Kaoffie/steno_font), which uses a font for the steno strokes to make it into a stroke diagram. You may want to [install the font](https://docs.ankiweb.net/templates/styling.html#installing-fonts) into Anki if you can't install fonts on your computer or if you want a portable Anki deck. - [Typing input](https://docs.ankiweb.net/templates/fields.html#checking-your-answer) ``` {{type:Back}} ```` Type out the field and when you turn the card over it will color code any differences. Some people like to check the translation field, some people like to turn off their dictionaries and check for the strokes. You might want a separate field for checking, since you may want prefix/suffix cards like "{^ing}" but what you type out is actually "ing". Anki does not use this to pick the rating of the card. It is also possible to hide the text you are typing by adding the following to your styling. This might be useful if you want to focus on trusting your muscle memory. ```css input[type=text] { /* options are disc, circle, square, none */ -webkit-text-security: disc; } ``` ## Pre-made Decks - [rchern/steno-anki](https://github.com/rchern/steno-anki) - [Learn Plover!](https://www.openstenoproject.org/learn-plover/) lessons - Top 10K Words - Emily's [Symbols](https://github.com/EPLHREU/emily-symbols) and [Modifiers](https://github.com/EPLHREU/emily-modifiers) dictionaries - Other community-contributed shared decks - Script to generate cards from text file - [jladdjr/anki-decks](https://github.com/jladdjr/anki-decks) - Top 10,000 Project Gutenberg words - Basic sounds - [Steno order and Phonetic strokes](https://ankiweb.net/shared/info/14548087) - A small deck with cards on steno order and phonetic strokes - [percidae/Anki_Plover](https://github.com/percidae/Anki_Plover/releases/) - Complete plover dictionary ## Useful Anki Add-ons [Anki Add-ons](https://docs.ankiweb.net/addons.html) are third party extensions that add features to anki. To install them, go to Tools -> Add-ons -> Get Add-ons. - [Automatic Scoring](https://ankiweb.net/shared/info/1765221856) - Automatically selects the difficulty of the card based on how long it took to answer it - You still have to press "enter" to confirm, so you still have full control - You may want to adjust the default time to something different. You can [show the answer timer](https://docs.ankiweb.net/deck-options.html#general) and look at your [answer button graph](https://docs.ankiweb.net/stats.html#the-graphs) to get an idea of what a reasonable time might be. - Pairs well with [Advanced Review Bottom Bar](https://ankiweb.net/shared/info/1136455830) which makes it easier to see which button has been pre-selected. - [Anki Connect](https://ankiweb.net/shared/info/2055492159) - Needed for some [useful plover extensions](#useful-plover-extensions) - [Find Missing Words](https://ankiweb.net/shared/info/754868802) - Paste in a block of text and this will help you find words you don't have cards for - [Anki Simulator](https://ankiweb.net/shared/info/817108664) - Simulates your reviews over time. Useful for choosing settings (e.g. number of new cards a day) that won't overwhelm you. (You can see how long you take per card that day in the Stats window or below the list of decks, and use this to see how many repetitions you want) - [Persistent Editor](https://ankiweb.net/shared/info/1686259334) (doesn't work with latest Anki version) - Keeps the editing window open while reviewing (but hides the current card until you've answered it). Useful if you are using a pre-made deck and prefer different briefs to the ones that are there. - [Mini Format Pack](https://ankiweb.net/shared/info/295889520) - Gives you more formatting options in the menu. Useful for making lists of alternative strokes, or other formatting - [AwesomeTTS](https://ankiweb.net/shared/info/1436550454) - Gives you access to a range of TTS voices and human recorded voices (Forvo). - [Copy selection field](https://github.com/antistic/anki-copy-selection-field) - Lets you copy several selected entries in the Anki browse window, for example to copy into a practice tool like Steno Jig or Typey Type. ## Useful Plover Extensions - [Plover Cards](https://github.com/antistic/plover_cards) - See previously typed words/phrases, sorted by various properties (e.g. last used, most used), choose your preferred stroke and add them into Anki. - Command to quickly bring up the last X words you typed and their suggestions in an Anki "Add Card" window - Requires [Anki Connect](https://ankiweb.net/shared/info/2055492159) - [Spectra Lexer](https://github.com/fourshade/spectra_lexer) - Analyzes strokes and generates stroke diagrams (click save). Useful for having stroke diagrams which explain the stroke. </markdown> 27137f9facdfed35a6688c48cd37b00711e21ab2 Beginner's Guide 0 4 141 105 2024-02-06T04:00:35Z Aerick 9 /* Connect a compatible keyboard or stenography machine */ wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]] * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno*] * [https://nolltronics.com/product/multisteno/ Multisteno*] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*] * [https://softhruf.love/products/soft-hruf-erl Splitography*] * [https://www.stenography.store/ Starboard*] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*] * [https://stenokeyboards.com/ The Uni*] (* = External link) More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. </blockquote> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] c4b8406d8a668d97d03aa784dac1e9457eec739f 147 141 2024-02-11T00:18:50Z Aerick 9 Add instructions for testing NKRO wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]] * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno*] * [https://nolltronics.com/product/multisteno/ Multisteno*] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*] * [https://softhruf.love/products/soft-hruf-erl Splitography*] * [https://www.stenography.store/ Starboard*] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*] * [https://stenokeyboards.com/ The Uni*] (* = External link) More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. </blockquote> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] 0bc9b9244760fabef4981fcacdaeb3aacd2994e1 Top 100 Words in Plover's Dictionary 0 31 142 2024-02-06T04:00:57Z Rice 1 Created page with "<markdown> What they are, and why they are stroked like that. ## Introduction Fun fact: The top 100 words in the English language make up about 50% of all written material. When learning steno theory, you might be confused by the fact that many common words are not written out phonetically. There are many reasons that this is the case, but it boils down to: - Avoiding [word boundary errors](https://github.com/openstenoproject/plover/wiki/Glossary#word-boundary) - Eas..." wikitext text/x-wiki <markdown> What they are, and why they are stroked like that. ## Introduction Fun fact: The top 100 words in the English language make up about 50% of all written material. When learning steno theory, you might be confused by the fact that many common words are not written out phonetically. There are many reasons that this is the case, but it boils down to: - Avoiding [word boundary errors](https://github.com/openstenoproject/plover/wiki/Glossary#word-boundary) - Ease of stroking ## The List ### 1. the `-T` The most common word in the English language is reserved to just one key, right-hand `-T`. The right hand position makes it easy to have a single stroke brief for some of the most common two-word phrases. For example: `SKP-T` for "and the". ### 2. be `-B` Right-hand `-B`. The "B" key in Plover just happens to be the "be" key. How convenient! Writing out "be" like `PWE` is the word part "be^". For example: "beware" or "belated". And the phonetic `PWAOE` is "bee"! ### 3. to `TO` Written out by spelling, `TO`. This is easy to hit and free of conflicts. Warning: `O` for "to" in the default dictionary is a misstroke. It is not free from word boundaries. ### 4. of `-F` Right-hand `-F`. This is a simple one key stroke, and it frees up `OF` to be used for "off". ### 5. and `SKP-` `SKP-`. This is an easy to hit stroke with only the left hand. This makes it a good candidate for starting phrases, like `SKPU` for "and you". ### 6. a `AEU` `A` is used as a prefix for words like "affix" or "arrive". The tense A sound is used to avoid conflicts. In some theories, these strokes are mixed, and you could swap them safely, if you wanted. ### 7. in `TPH` `TPH` is just the left-hand `N`. This combination frees up `EUPB` to be used for the "in^" prefix, like in "indoors". Also good for phrases, such as `TPH-T` for "in the". ### 8. that `THA` We drop the ending T to bring this stroke into the left hand for use at the beginning of phrases. Examples: `THAR` for "that are", `THAS` for "that is". ### 9. have `SR-` This is the left-hand `V`. The phonetic version of this would be `HA*F` which is much harder to stroke for such a common word, and the left-hand makes right-hand phrase parts feel more natural, like `SR-T` for "have the". `HAF` and `HA*F` get mapped to "half" and "1/2" in the default dictionary, respectively. ### 10. I `EU` (`I`) This is a non-phonetic stroke to give space for "eye". It's easy to hit and fits in some phrases, such as `SKPEU` for "and I". Note that, in some cases, you will use the `AOEU` cluster for I, such as in "I'll" (`AOEUL`) and "I'm" (`AOEUPL`) because the shorter versions are used for other things, in this case "ill" and the word beginning "im^". ### 11. it `T-` This is easy to hit and on the left hand for beginning phrases such as `TWAS` for "it was". Same pattern as for "in" and "if". ### 12. for `TP-R` (F-R). This drops the vowel to save effort for such a common word. If you want to use "for^" the prefix, then use `FAUR`. For example, forgone is `FAUR/TKPWOPB`. ### 13. not `TPHOT` ### 14. on `OPB` ### 15. with `W-` This is another easy to use single key stroke that can begin phrases like `WOUR` for "with our" and `W-T` for "with the". ### 16. he `HE` This is recommended over the `E`-only version for most cases, but depending on the phrase or word you might need `E` (`SKPE`: and he), `HE` (`HEBGD`: he could), and `HAOE` (`HAO*EL`: he'll) ### 17. as `AS` (spelling) or `AZ` (phonetic). ### 18. you `U` The `U` key is used for "you". Can be used in phrases such as `SKPU` for "and you". ### 19. do `TKO` (spelling). Don't drop the vowel, because `TK-` alone is used for "did". ### 20. at `AT` ### 21. this `TH` "This" is a special case, as it's basically set to `TH` for convenience and to open up the opportunity for several other briefs. For example, `THEU` is used for "think", and `THEUS` follows as "thinks". Also works in phrases: `TH-FS` for "this was" ### 22. but `PWUT` or `PWU`. Mirabai uses `PWUT` as "but" and that is okay, but you can safely remap `PWUT` to "but the" if you want to use `PWU` as "but" exclusively. ### 23. his `HEUS` (spelling), `HEUZ` (phonetic) ### 24. by `PWEU` This is a non-phonetic mapping to make room for `PWAOEU`: "buy". Add an asterisk to "by" and get the word beginning "bi^", add an asterisk to "buy" and get "bye". ### 25. from `TPR-` (`FR-`). This is similar to "for" (`TP-R`), but instead of dropping just the vowel, we drop the ending -M sound as well. This opens up "from" to phrases, like in `TPRUS` for "from us" and `TPR-T` for "from the" and `TPREUPLT` for "from time to time". ### 26. they `THE` Since "the" is stroked with just `-T`, we can place "they" in this stroke. It's important not to use `THAEU` to avoid potential conflict when we get to "they're" and "their". ### 27. we `WE` (spelling) or `WAOE` (phonetic) ### 28. say `SAEU` (phonetic). Advanced: Also present as a right-hand only shortcut as `-BZ`, such as `THEBZ` for "they say". Get the past tense with `-BS` such as `THEBS` for "they said". ### 29. her `HER` ### 30. she `SHE` (spelling) or `SHAOE` (phonetic) ### 31. or `OR`. The phonetic version is given instead to "other" (`OER`). ### 32. an `APB` ### 33. will `HR-` Left-hand L. Useful for phrases, such as `HR-B` for "will be" and `HRU` for "will you". ### 34. my `PHEU` or `PHAOEU`. We break phonetic convention to offer an easier to hit stroke. ### 35. one `WUPB` (phonetic) ### 36. all `AUL` (phonetic). This vowel is common in the Plover dictionary, such as in `WAUL` (wall) and `PWAUL` (ball). ### 37. would `WO`. Left-hand-only brief is useful for phrases: `WOB` for "would be" and `WOU` for "would you". ### 38. there `THR-` This brief is used to avoid conflict with `THER` for "they're" and `THAEUR` for "their". ### 39. their `THAEUR` (phonetic). The homophone "they're" is stroked with `THER` which is the brief `THE` for "they" with `-R` added on. ### 40. what `WHA` Similar to `THA` for "that", `WHAT` is "what the". ### 41. so `SO` (spelling) ### 42. up `UP` Use `AUP` for the word beginning "up^" like `AUP/WARDZ` for "upwards". ### 43. out `OUT` Use `AOUT` for the word beginning "out^" like `AOUT/SPOEBG/*EN` for "outspoken" or `AOUT/RAEUPBLG` for "outrage". ### 44. if `TP-` The bare left F is used for "if". Good as a phrase beginner, such as `TP-T` for "if the". Same pattern as "it" and "in". ### 45. about `PW-` The left-hand B is used for "about" as a convenient brief. Some theories do this word differently. One nice benefit of being on the left side is, of course, phrases: `PW-T` for "about the". ### 46. who `WHO` (spelling). We can't use `HAOU` (hue) or `HAO` (hoo). ### 47. get `TKPWET` or `TKPW-T` ### 48. which `WEU`. Just a brief. ### 49. go `TKPWO` (spelling), `TKPWOE` (phonetic), or just `TKPW`. ### 50. me `PHE` (spelling), `PHAOE` (phonetic). As with many of these common words, being less strict on the vowel gives your fingers a potential break. ### 51. when `WH` (brief) or `WHEPB` (spelling) ### 52. make `PHAEUBG` (`MAIK`) (phonetic) ### 53. can The left-hand `K-` only, useful for phrases. `K-B` (can be). ### 54. like `HRAOEUBG` (phonetic) ### 55. time `TAOEUPL` (phonetic) ### 56. no `TPHO` (spelling). The phonetic version is saved for "know". ### 57. just `SKWRUFT` Remember that `-F` is sometimes used for S. ### 58. him `HEUPL` ### 59. know `TPHOE` (phonetic) ### 60. take `TAEUBG` (phonetic) ### 61. people `PAOEPL` In this case `-PL` is used for the "pl" sound instead of `-M`. ### 62. into `TPHAO` `TPH-` is "in", and `AO` is sometimes used for `oo` which sounds liked the vowel in "into". Can't use `TPHAOU` as it is being used by "knew". ### 63. year `KWRAOER` (phonetic) ### 64. your `KWROUR` (spelling). Don't use `KWRUR` as that's the word ending `^ur` like in `KHROES/KWRUR` (closure). ### 65. good `TKPWAOD` ### 66. some `SOPL` As a word beginning, `S-` and `SPH-` are used: for example, `SPH-PB` for "someone" and `S-G` for "something". ### 67. could `KO` Brief like `WO` for "would". ### 68. them `THEPL` ### 69. see `SAOE` ### 70. other `OER` Shows up as a word part, like in `TPHOER` for "another". ### 71. than `THAPB` (spelling) ### 72. then `THEPB` (spelling) ### 73. now `TPHOU` ### 74. look `HRAOBG` ### 75. only `OEPBL` In Plover's dictionary, `E` is often added to strokes to make them end with an "ee" sound. `OEPBL` can be thought of as "onl/ee". Lots of briefs use this, such as `KRAER` for "contrary" and `TPAEPL` for "family". ### 76. come `KOPL` ### 77. its `EUTS` `T-S` is used for "it's". ### 78. over `OEFR` Emphasizing the tense-O sound to contrast with `OFR` for "offer". To use as a prefix, use `AUFR`, such as `AUFR/TKOPB` for "overdone". ### 79. think `THEU` (brief), with a whole family: `THEUS` for "thinks", `THEUG` for "thinking". ### 80. also `HR-S` (brief) ### 81. back `PWABG` ### 82. after `AF` `AFT` is a misstroke entry which you could consider remapping to "aft" or "after the". To use as a prefix, use `AFR`, such as `AFR/TAEUFT` for "aftertaste". ### 83. use `AOUS` or `AOUZ` ### 84. two `TWO` (spelling) ### 85. how `HOU` ### 86. our `OUR` ### 87. work `WORBG` ### 88. first `TPEURS` This brief drops the "t" sound for comfort. ### 89. well `WEL` ### 90. way `WAEU` ### 91. even `AOEPB` or `AOEFPB` Dropping the -F makes this stroke easier to hit. ### 92. new `TPHU` Briefed to avoid conflict with `TPHAOU` for "knew". ### 93. want `WAPBT` ### 94. because `PWAUS` or `PWAUZ` (briefs) ### 95. any `TPHEU` (brief) ### 96. these `THEZ` (brief) or `THAOES`/`THAOEZ` (phonetic). The brief is much easier to hit. ### 97. give `TKPWEUF` No need for an asterisk, which is often the case with common words in the Plover dictionary. ### 98. day `TKAEU` (phonetic) ### 99. most `PHOFT`, `PHOEFT`, `PHO*ES`, or `PHO*S`. Go with the option you like most. ### 100. us `US` </markdown> 5dc1d9aa127e31d0214e510044b4227d494a2fdd Misleading Strokes in Plover's Dictionary 0 32 143 2024-02-06T04:01:42Z Rice 1 Created page with "<markdown> The theory used in Plover's dictionary applies some best practices for stroking certain words. There are some misstroke entries in the Plover dictionary that are very nice (and short), but may cause issues later on. For example, with [word boundaries](https://github.com/openstenoproject/plover/wiki/Glossary#word-boundary). ### And The best practice for "and": * Use `SKP` ✓ This was chosen arbitrarily, because it is comfortable and there is little chanc..." wikitext text/x-wiki <markdown> The theory used in Plover's dictionary applies some best practices for stroking certain words. There are some misstroke entries in the Plover dictionary that are very nice (and short), but may cause issues later on. For example, with [word boundaries](https://github.com/openstenoproject/plover/wiki/Glossary#word-boundary). ### And The best practice for "and": * Use `SKP` ✓ This was chosen arbitrarily, because it is comfortable and there is little chance of a word boundary issue. "and" is a common word ending, so stenographers find it easy to remember to stroke `SKP`. `SKP` is also allows the use of phrases like `SKPU → and you` and `SKPEU → and I`. There are some other strokes in the dictionary for "and". However, they are only to serve as a phonetic alternative when you are writing under pressure, and you can't remember `SKP`. ### Con- words In Plover's theory, the best practice for con- words is: * Use `KAUPB` to start words beginning with con. ✓ * Only use `KOPB` for the word "con". However, when you look up a con word in Plover, it will only return misstrokes that contain the `KOPB` stroke. The reason for this is because the con- prefix doesn't require a dictionary entry. For example, for the word "conquer": * Use `KAUPB/KER` ✓ * Do not use `KOPB/KER` ✘ Other words are not easy to write phonetically because they are to be briefed. For example: `T-PB for "continue"`. ### Hyphen (-) The best practice for "-": * `H-PB` ✓ Why `H-PB`? The reason is that `H-PB` is `H-N` in pseudo-steno, which short for hyphen. There are a set of misstrokes that use `H-B` instead. These are OK to use. ### Was The best practice for "was": * `WAS` ✓ or * `WAZ`. ✓ The default dictionary has `WA → was`, which is most of the time all right. However it can conflict in some cases. For example: `WA/TKPWOPB → wagon (not "was gone")` and `WA/TPHA/SA → wanna sa (not "was NASA")`. ### Your The best practice for "your": * Use`KWROUR` ✓ * Do not use `KWRUR` ✘ This is because `KWRUR` is a word ending. For example: `KHROES/KWRUR → closure` versus `KHROES/KWROUR → close your`. ### Period (.) The best practice for ".": * `TP-PL` ✓ or * `-FPLT` ✓ The other strokes `-P` and `-PL` can be used, but there will be conflicts. For example, `WEUPL/-P` is "wimp" rather than "women." Similarly, `HEL` is "hell" but `HEL/PL` is "helm". </markdown> 2e11634fb085950bb564bf706fe443bcf63a128e Learning stenography 0 17 144 89 2024-02-06T04:10:31Z Rice 1 wikitext text/x-wiki == Suggested Learning Route == <blockquote>⚠️ This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.</blockquote> {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''Start reading a [[Learning Stenography#Textbooks|textbook]].''' [https://www.artofchording.com/ The Art of Chording] seems to be more popular, but [https://www.openstenoproject.org/learn-plover/ Learn Plover!] is more complete (covering punctuation and numbers as well). '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Textbooks == These sites aim to teach you steno theory, from the layout to the terminology to the strokes. * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. However, do note that this theory is not default in the Plover app. Although based off of Plover theory, Lapwing offers more consistency and relies less heavily on memorization. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out Plugins for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website with a stenography world and public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allow you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY] *** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] 3d7cfb997cb729499a099de23b37bb6c06f0e2ea 155 144 2024-02-12T03:15:24Z Aerick 9 remove reference to now defunct keyma.sh steno world wikitext text/x-wiki == Suggested Learning Route == <blockquote>⚠️ This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.</blockquote> {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''Start reading a [[Learning Stenography#Textbooks|textbook]].''' [https://www.artofchording.com/ The Art of Chording] seems to be more popular, but [https://www.openstenoproject.org/learn-plover/ Learn Plover!] is more complete (covering punctuation and numbers as well). '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Textbooks == These sites aim to teach you steno theory, from the layout to the terminology to the strokes. * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. However, do note that this theory is not default in the Plover app. Although based off of Plover theory, Lapwing offers more consistency and relies less heavily on memorization. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out Plugins for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allow you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY] *** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] ef443bd57e6add21f4c4010d2c1171b534914d5c Brief Ideas 0 18 145 90 2024-02-06T04:11:34Z Rice 1 wikitext text/x-wiki Learn Plover! is a great introduction to Plover's theory and has everything you need to get started writing in steno. However, there are some patterns across Plover's dictionary which are not documented there. This document aims to show some of the hidden patterns. It also suggests some others that you can consider using in your personal dictionary. <img src="http://qwertysteno.com/Images/steno-keyboard1.gif"> == In the Main Dictionary == You can start using these patterns today! === <code>SPW-</code> for int- and ent- === <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM3MzU0MjY0NzM5ODQvMzE1OTMxNDg1MzU2MTYzMDg0L1NQVy0ucG5nIn0.PmMTgOlKRGBqsKjRfj79wRGZ2FU"> This originated in the first steno theory, published by Ward Stone Ireland in the early 20th century. Today, it is also a part of Magnum steno. There are some entries in the default dictionary that use <code>SPW-</code>, although it's not documented in Learn Plover. Examples: * <code>SPWEPBLGT</code> for "intelligent". * <code>SPWRABGT</code> for "interact". * <code>SPWER</code> for "enter". * <code>SPWAOEURL</code> for "entirely". === <code>-FRP</code> for -mp === <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMyODQwMDc4NjA2MzM3Ly1GUlAucG5nIn0.7yN5cWWjUUj214MTDMRoactcKGY"> Usually, Plover theory (and Mirabai) uses <code>*PL</code> for the -mp sound in the end of a syllable. It can be difficult to add sounds after it. Instead, you can use <code>-FRP</code> to avoid conflicts and add <code>-B</code>, <code>-L</code> after -mp. Common uses of this are to add -mpl or -mbl to the end of a stroke: * <code>AFRP</code> for "amp" and <code>AFRPL</code> for "ample". This reduces conflicts with "apple" and "am". * <code>EUFRP</code> for "imp" === <code>-FP</code> and <code>-AOUFP</code> for -ture === <img src="https://images.discordapp.net/.eJwNxEsOhCAMANC7sB_K11APMGuvQJCgiVpC68p495m3eI-6x6FmtYl0ngHWnQuNVbPQyK3qRtSOmvvOutAJWSSX7ayXMFg_YfTJYDCYjHPBgLcR_T-LwaYUcXLw-S66X029P3evIJM.quQ3BjFFrW-Wn79vtoHMSe2U594"> <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8zMTU5MzQwNjAxNTUzNzE1MjEvMzE1OTM0NTY0MTE3OTA1NDEwL0FPLVVGUC5wbmcifQ.eOkuTdrVDh49idcRD_ztb5ZBN3c"> <code>-FP</code> is used for the -ch sound in words like "catch". The default dictionary also includes many briefs where it is used for the -ture suffix. for example: "nature", which can be stroked as <code>TPHAEUFP</code> (naich). A note: For some of these words, a tense u sound (<code>AOUFP</code>) is used for -ture instead of just the <code>-FP</code>: * <code>TPHAEUFP</code> for "nature" * <code>KRAOEFP</code> for "creature" * <code>KAOUFP</code> for "culture" * <code>TPAOEFP</code> for "feature" * <code>P*EUFP</code> for "picture" * <code>STRAOUFP</code> for "structure" * <code>SKAOUFP</code> for "sculpture" * <code>FRA*FP</code> or <code>FRAOUFP</code> for "fracture" == Non-Plover Theory Ideas == You will need to define new strokes in your dictionary with these ideas. === <code>SKP-</code> for ex- === <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzNjAwMzUwNjAxMjM3L1NLUC0ucG5nIn0.XnB7R4DxhVOeSpgr6mNIje2YCdE"> The default dictionary uses a combination of <code>KP-</code> and <code>S-</code> to make the leading ex- sound. For example: <code>KPEUT</code> for "exit" for <code>SPHRAEUPB</code> for "explain". The rules for which one to use depend on the consonant following the ex-. If you don't like this, you can use <code>SKP-</code> for a leading ex-: * <code>SKPRAGT</code> for "extract". * <code>SKPERPBL</code> for "external". * <code>SKPHRAEUPB</code> for "explain". Note: The leading <code>SKP-</code> is also used for some phrase briefs starting with "and" in the default dictionary. For example: * <code>SKPEBG</code> for "and he can" * <code>SKPALS</code> for "and also". If this is a problem for you, you can also try <code>SK*</code> instead of <code>SKP-</code>. === <code>KPW-</code> for im- and em- === <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzODA5ODQzMzcyMDMzL0tQVy0ucG5nIn0.V7JbEqDmCU4LLvjgKmaQG351A7s"> Examples: * <code>KPWRES</code> for "impress". === <code>-FR</code> for -m === <img src="https://images.discordapp.net/.eJwtyEEOhCAMAMC_cF_aikj0AfsAf0CAoIlaQuvJ7N_34hznMXc_zGI21SYLQN4lcc9WlHusxVbmepTYdrGJT4iqMW1nuVTAkZ_diBOS9y6QH-gtmhAdIoZhDvD5rrZd1fz-dDIgcg.eRrlLVQMtQVEDI0MRpiLtfXMmMc"> Above it's shown that <code>-FRP</code> can be used in the default dictionary for -mp. This stroke extends that idea: If <code>-PL</code> causes an issue (for example: "camel"), use <code>-FR</code>. For example: * <code>KAFRL</code> for "camel" [[Category:Stenography]] abbdb31f67c02b1377bbcad3d11374832ee517f8 146 145 2024-02-06T04:13:53Z Rice 1 wikitext text/x-wiki [https://www.openstenoproject.org/learn-plover/ Learn Plover!] is a great introduction to Plover's theory and has everything you need to get started writing in steno. However, there are some patterns across Plover's dictionary which are not documented there. This document aims to show some of the hidden patterns. It also suggests some others that you can consider using in your personal dictionary. == In the Main Dictionary == You can start using these patterns today! === <code>SPW-</code> for int- and ent- === This originated in the first steno theory, published by Ward Stone Ireland in the early 20th century. Today, it is also a part of Magnum steno. There are some entries in the default dictionary that use <code>SPW-</code>, although it's not documented in [https://www.openstenoproject.org/learn-plover/ Learn Plover.] Examples: * <code>SPWEPBLGT</code> for "intelligent". * <code>SPWRABGT</code> for "interact". * <code>SPWER</code> for "enter". * <code>SPWAOEURL</code> for "entirely". === <code>-FRP</code> for -mp === Usually, Plover theory (and Mirabai) uses <code>*PL</code> for the -mp sound in the end of a syllable. It can be difficult to add sounds after it. Instead, you can use <code>-FRP</code> to avoid conflicts and add <code>-B</code>, <code>-L</code> after -mp. Common uses of this are to add -mpl or -mbl to the end of a stroke: * <code>AFRP</code> for "amp" and <code>AFRPL</code> for "ample". This reduces conflicts with "apple" and "am". * <code>EUFRP</code> for "imp" === <code>-FP</code> and <code>-AOUFP</code> for -ture === <code>-FP</code> is used for the -ch sound in words like "catch". The default dictionary also includes many briefs where it is used for the -ture suffix. for example: "nature", which can be stroked as <code>TPHAEUFP</code> (naich). A note: For some of these words, a tense u sound (<code>AOUFP</code>) is used for -ture instead of just the <code>-FP</code>: * <code>TPHAEUFP</code> for "nature" * <code>KRAOEFP</code> for "creature" * <code>KAOUFP</code> for "culture" * <code>TPAOEFP</code> for "feature" * <code>P*EUFP</code> for "picture" * <code>STRAOUFP</code> for "structure" * <code>SKAOUFP</code> for "sculpture" * <code>FRA*FP</code> or <code>FRAOUFP</code> for "fracture" == Non-Plover Theory Ideas == You will need to define new strokes in your dictionary with these ideas. === <code>SKP-</code> for ex- === The default dictionary uses a combination of <code>KP-</code> and <code>S-</code> to make the leading ex- sound. For example: <code>KPEUT</code> for "exit" for <code>SPHRAEUPB</code> for "explain". The rules for which one to use [https://www.dropbox.com/s/fa7fch2eocubrde/Philadelphia%20Clinic.pdf?dl=0 depend on the consonant following the ex-]. If you don't like this, you can use <code>SKP-</code> for a leading ex-: * <code>SKPRAGT</code> for "extract". * <code>SKPERPBL</code> for "external". * <code>SKPHRAEUPB</code> for "explain". Note: The leading <code>SKP-</code> is also used for some phrase briefs starting with "and" in the default dictionary. For example: * <code>SKPEBG</code> for "and he can" * <code>SKPALS</code> for "and also". If this is a problem for you, you can also try <code>SK*</code> instead of <code>SKP-</code>. === <code>KPW-</code> for im- and em- === Examples: * <code>KPWRES</code> for "impress". === <code>-FR</code> for -m === Above it's shown that <code>-FRP</code> can be used in the default dictionary for -mp. This stroke extends that idea: If <code>-PL</code> causes an issue (for example: "camel"), use <code>-FR</code>. For example: * <code>KAFRL</code> for "camel" [[Category:Stenography]] c89405f44458456c024c0a5adb7602245fce7045 File:Downloading-other-versions-gif.gif 6 33 148 2024-02-11T00:22:06Z Aerick 9 wikitext text/x-wiki GIF image showing to click on assets in order to download other Plover versions. 49fdfdb5d19c1ecab83bb039aed38f54864077e5 Steno layouts and supported languages 0 19 150 91 2024-02-11T17:37:07Z Rice 1 started converting from github md to mw format wikitext text/x-wiki A chorded system, or ''system'' for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. '''System Plugins''' allow Plover to support different machine types and languages other than English. The [[wikipedia:Stenotype|American Ward Stone Ireland Stenotype]] is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover. Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system. For systems proposed for implementation, check out the [https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems issues list]. {| class="wikitable" |- |🔴 |Not supported in Plover |- |🟠 |Work in progress, not actively updated or maintained |- |🟡 |Work in progress |- |🟢 |Stable and available for Plover |} == Languages == * English: ** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] ** [[Steno Layouts and Supported Languages#possum-palantype|Palantype]] ** [[Steno Layouts and Supported Languages#michela|Michela]] ** [[Steno Layouts and Supported Languages#phenrsteno|Phenrsteno]] ** [[Steno Layouts and Supported Languages#velotype|Velotype]] ** [[Steno Layouts and Supported Languages#jackdaw|Jackdaw]] ** [[Steno Layouts and Supported Languages#kinglet|Kinglet]] * Chinese, Mandarin (國語 / 普通话): ** [[Steno Layouts and Supported Languages#yawei|Yawei]] ** [[Steno Layouts and Supported Languages#exun|EXun]] ** [[Steno Layouts and Supported Languages#suoheng|Suoheng]] * Chinese, Cantonese (粵語): ** [[Steno Layouts and Supported Languages#sansan|SanSan]] ** [[Steno Layouts and Supported Languages#maajik|MaaJik]] * Czech / Čeština: ** [[Steno Layouts and Supported Languages#czech-stenograph|Stenotype]] ** [[Steno Layouts and Supported Languages#trillo|Trillo]] ** [[Steno Layouts and Supported Languages#plover-czech|Plover Czech]] * Danish / Dansk: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] * Dutch / Nederlands: ** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] ** [[Steno Layouts and Supported Languages#velotype|Velotype]] * Finnish / Suomi: ** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] ** [[Steno Layouts and Supported Languages#especias|Especias]] * French / Français: ** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] ** [[Steno Layouts and Supported Languages#grandjean|Grandjean]] * German / Deutsch: ** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] ** [[Steno Layouts and Supported Languages#possum-palantype|Palantype]] ** [[Steno Layouts and Supported Languages#german-syllatype|Syllatype]] * Greek / Ελληνικά: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] * Hebrew / עברית: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] * Hindi / हिन्दी: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] * Italian / Italiano: ** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] ** [[Steno Layouts and Supported Languages#michela|Michela]] * Japanese / 日本語: ** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] ** [[Steno Layouts and Supported Languages#sokutaipu|Sokutaipu]] ** [[Steno Layouts and Supported Languages#stenoword|StenoWord]] ** [[Steno Layouts and Supported Languages#hachidori|Hachidori]] ** [[Steno Layouts and Supported Languages#frags-japanese-system|Frag]] * Korean / 한국어: ** [[Steno Layouts and Supported Languages#korean-cas|CAS]] ** [[Steno Layouts and Supported Languages#sorizava|Sorizava]] * Polish / Polski: [[Steno Layouts and Supported Languages#trillo|Trillo]] * Portuguese / Português: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] * Russian / Русский: ** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] ** [[Steno Layouts and Supported Languages#trillo|Trillo]] * Slovak / Slovenčina: [[Steno Layouts and Supported Languages#trillo|Trillo]] * Spanish / Español: ** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] ** [[Steno Layouts and Supported Languages#grandjean|Grandjean]] ** [[Steno Layouts and Supported Languages#especias|Especias]] * Swedish / Svenska: [[Steno Layouts and Supported Languages#possum-palantype|Palantype]] * Thai / ภาษาไทย: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] * Turkish / Türkçe: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] * Vietnamese / Tiếng Việt: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]] == Stenotype (Ireland) == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500"> The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Plover''' |Mirabai Knight |English |Phonetic |Built-in |147k entries |Learning Resources |- |🟢 '''Lapwing''' |Aerick |English |Phonetic |Built-in |115k entries |Learning Resources |- |🟡 '''Cocoa''' |Kaoffie |English |Phonetic |Built-in |- |🟢 '''LaSalle''' |Claire Lefebvre-Yelle |French |Phonetic |Built-in |4.2k entries |Non-realtime-capable theory, taught at the ''École de sténographie judiciaire du Québec'' |- |🟡 '''Pluvier''' |Vermoot |French |Phonetic | | |Realtime-capable theory based on LaSalle |- |🟢 '''Easy Korean Steno''' |Peter Park |Korean |Orthographic |Requires plover-python-dictionary |Python Dictionary |- |🟢 '''Stanley's''' |Stanley Sakai |Spanish |Phonetic |Built-in |12k entries |- |🟢 '''EO Variant''' |Eliseo Ocampos |Spanish |Phonetic |plover-spanish-system-eo-variant |71k entries |Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules. |- |🔴 '''Marino''' | |Spanish |Phonetic | | |Spanish theory used in the Argentine Senate, along with Spanish Grandjean.<nowiki><br></nowiki>Overview<nowiki><br></nowiki>Facebook Page |- |🟢 '''Trillo Finnish''' |Priscilla Trillo |Finnish |Phonetic | |49k entries |Textbook (in Finnish) |- |🟢 '''Aerick's''' |Aerick |Vietnamese |Orthographic |Built-in |7k entries |Learning Resources |- |🟢 '''plover-vi''' |user202729 |Vietnamese |Orthographic |<nowiki><code>plover-vi</code></nowiki> |- |🟡 '''Hindi Devanagari''' |winston |Hindi |Phonetic |N/A |1,404 entries |Home Page |} === Shavian === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500"> Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Magpie''' |Lynn (Ruma) |English (Shavian) |Orthographic | | |Capable of both Shavian and orthodox (Latin script) translation |} === Brazilian Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500"> Brazilian Portuguese system used by Paulo Paniago, published in the textbook ''Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador''. Also included in some Stenograph machines. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Brazilian Stenograph''' |Randall Adam Czerenda, Jucineia J. de Andrade Pereira |Portuguese |Phonetic |<nowiki><code>plover-portuguese</code></nowiki> |4k entries<nowiki><br></nowiki>(available on the Plover Discord) |} === Czech Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500"> The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Czech Stenograph''' | |Czech |Phonetic |} === Greek Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500"> The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Greek Stenograph''' | |Greek |Phonetic |} === Hebrew Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500"> The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Hebrew Stenograph''' | |Hebrew |Phonetic |} === Turkish Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500"> The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Turkish Stenograph''' | |Turkish |Phonetic |} === Russian Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500"> The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Russian Stenograph''' | |Russian |Phonetic |} === Spanish Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500"> The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Spanish Stenograph''' | |Spanish |Phonetic |} === German Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500"> German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''German Stenograph''' | |German |Phonetic |<nowiki><code>plover-german</code></nowiki> |} === Regenpfeifer === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500"> A German steno system based on a modified English stenotype layout; the <code>-Z</code> key is replaced with <code>-N</code>. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Regenpfeifer''' |Martin Körner |German |Phonetic |<nowiki><code>plover-regenpfeifer</code></nowiki> |219k entries |Dictionary generator |} === German Syllatype === A syllabic and orthographic system with the mission to be more intuitive and easy to learn. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Syllatype''' |YAMERO |German |Orthographic |<nowiki><code>plover-german-syllatype</code></nowiki> |5k+ entries (syllables) | |} === 42triangles' Kana System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500"> Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''42triangles' Kana System''' |42triangles |Japanese |Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only | | |Relies on a user IME |} === Willem's Kana System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500"> A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Willem's Kana System''' |Willem Sonke |Japanese |Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only |<nowiki><code>plover-japanese-kana</code></nowiki> | |Relies on a user IME |} === Danish Hjejle === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500"> A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Hjejle''' |Lars Rune Præstmark |Danish |Phonetic |Built-in |5k entries |} === Melani === ==== Italian ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Melani''' | |Italian |Orthographic |<nowiki><code>plover-melani</code></nowiki> | |Stenolab |} ==== Spanish ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500"> Spanish system based on the Melani Italian layout, used at MQD. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''MQD Melani''' |Noelia Ruiz Martínez |Spanish |Phonetic |<nowiki><code>plover-spanish-mqd</code></nowiki> |11k entries |} ==== Russian ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500"> Not much is known about this layout; see this discussion about Russian steno. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Melani''' | |Russian |Phonetic |} === Thai Steno === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500"> A work-in-progress Thai steno system. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Thai Steno''' |Parnikkapore |Thai |Phonetic |<nowiki><code>plover-thsteno</code></nowiki> |} === Jade's Dutch System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500"> Dutch steno system that uses a modified version of the English stenotype layout with one extra <code>G</code> key on the left. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Jade's Dutch System''' |Jade Geels |Dutch |Phonetic |<nowiki><code>plover-dutch</code></nowiki> |3.4k entries |} === Willem's Dutch System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500"> Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Willem's Dutch System''' |Willem Sonke |Dutch |Phonetic |<nowiki><code>plover-dutch</code></nowiki> |7.7k entries |} == Grandjean == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500"> The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts). {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Grandjean''' | |French |Phonetic |<nowiki><code>plover-grandjean</code></nowiki> |690k+ entries |GitHub |- |🔴 '''Grandjean''' | |Spanish |Phonetic | | |Asociacion Española de Estenotipistas |} == Michela == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500"> A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent. {| class="wikitable" |+ ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Michela''' |Sillabix |Italian |Phonetic |[https://github.com/benoit-pierre/plover_michela plover-michela] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano 103k entries] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano Manual] |- |🟡 '''Michela''' |Sillabix |English |Phonetic |[https://github.com/benoit-pierre/plover_michela plover-michela] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json 150 entries] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction) Manual] |- |🟡 '''Midi4Text''' |Sillabix |Italian |Orthographic |[https://github.com/nsmarkop/plover_midi4text plover-midi4text] |[http://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json 95k entries] |[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA) Manual] |- |🟡 '''Midi4Text''' |Sillabix |English |Orthographic |[https://github.com/nsmarkop/plover_midi4text plover-midi4text] |[https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.8).json 159k entries] |[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG) Manual] |} == Possum Palantype == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500"> The Possum Palantype is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some STTRs worldwide for writing in English. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Palantype''' | |English |Phonetic |<nowiki><code>plover-palantype</code></nowiki> |21k entries |Learn Palantype |- |🔴 '''Swedish Palantype''' | |Swedish |Phonetic |<nowiki><code>plover-swedish-palantype</code></nowiki> |87k entries |Swedish Theory |} === Plover German Palantype === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500"> German steno system based on the Possum Palantype layout with two additional keys. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''German Palantype''' | |German |Phonetic |<nowiki><code>plover-palantype-german</code></nowiki> |85k entries |} === Ruben Moor's German Palantype === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''German Palantype''' |Ruben Moor |German |Phonetic | |100k entries, with plans to expand to 2 million |Tutorial |} == Trillo == === Trillo Russian === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500"> A realtime theory for Russian writing based on the Tréal machine. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Trillo Russian''' |Priscilla Trillo |Russian |Phonetic |<nowiki><code>plover-russian-trillo</code></nowiki> |15k entries |Textbook (in mixed English/Russian) |} === Trillo West Slavic === <img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Trillo West Slavic''' |Priscilla Trillo |Czech, Slovak, Polish |Phonetic | | |Textbook |} == Yawei == === Yawei === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500"> Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Yawei''' (亚伟) | |Mandarin (Traditional / Simplified) |Symmetric Toneless Pinyin | | |Wikipedia |} === MaaJik === <img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''MaaJik''' (孖翼) |Sammi de Guzman, Samuel Lo |Cantonese (Traditional) |Symmetric Toneless Jyutping |<nowiki><code>plover-maajik</code></nowiki> |314k entries |} === SanSan === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''SanSan''' (珊々) |Sammi de Guzman |Cantonese (Traditional) |Symmetric Toneless Jyutping | | |Steno Explainers |} === TCIM === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''TCIM''' (千鳥詞注) |Quisette C |Mandarin (Traditional) |Symmetric Toneless Zhuyin |<nowiki><code>plover-tcim</code></nowiki> |} == EXun == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500"> EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''EXun''' (E 讯) | |Mandarin (Simplified) |Symmetric Toneless Pinyin |} == Suoheng == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500"> Very little is known about the Suoheng system and there are no plans to implement it in Plover. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Suoheng''' (索恒) | |Mandarin (Simplified) |Symmetric Toneless Pinyin |} == Korean CAS == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500"> The Computer Aided Steno-machine, or CAS, was developed by Korea Steno and features one of the two modern stenography systems for Korean in use today. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''CAS''' | |Korean |Orthographic (Initial/Medial/Final) with Briefs |<nowiki><code>plover-korean</code></nowiki> ("Korean Modern C") | |Theory documentation |} == Korean Sorizava == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500"> Sorizava, developed by a company of the same name, is the second of the modern stenography systems for Korean in use today and the more recent to have been created. The Sorizava system is not currently under development. There are partial pieces of an implementation in plover-korean but outside of a partial dictionary no theory materials have been obtained to progress further. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Sorizava''' | |Korean |Orthographic (Initial/Medial/Final) with Briefs |<nowiki><code>plover-korean</code></nowiki> ("Korean Modern S") |} == Sokutaipu == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500"> Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Sokutaipu''' (ソクタイプ) | |Japanese |Semi-Symmetric 2 Mora + 1 Coda<nowiki><br></nowiki>Pure Kana |<nowiki><code>plover-japanese-sokutaipu</code></nowiki> |365k entries |Kana table |} == StenoWord == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500"> The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''StenoWord''' (ステノワード) | |Japanese |Orthographic 1-Syllable<nowiki><br></nowiki>Pure Kana |<nowiki><code>plover-japanese-stenoword</code></nowiki> |2.6k entries |Kana table |} == Frag's Japanese System == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Frag's Japanese System''' |Frag |Japanese |Symmetric 2 Mora + 2 Coda<nowiki><br></nowiki>Stucture-based kanji conversion |} A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke. This is the updated version of the Japanese layout available on TypeyType. == Hachidori == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500"> Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Hachidori''' (はちどり) |Kaoffie |Japanese |Symmetric 2 Mora + 2 Coda |} == Velotype == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500"> The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in Qweyboard by kqr. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Velotype''' | |English, Dutch |Orthographic |<nowiki><code>plover-syllabic-chording</code></nowiki> | |Official website |} == Jackdaw == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500"> An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Jackdaw''' | |English |Orthographic |<nowiki><code>plover-jackdaw-alt1</code></nowiki> | |Learn Plover! Jackdaw tutorial |} == Kinglet == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500"> Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Kinglet''' |Zachary Brown |English |Orthographic |Plover 2.5.8 modified for Kinglet | |Learn Plover! Kinglet tutorial |} == Phenrsteno == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500"> Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Phenrsteno''' |Gregory Chamberlain |English |Phonetic |<nowiki><code>plover-phenrsteno</code></nowiki> |15k entries |Phenrsteno wiki |} == Plover Czech == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Plover Czech''' |Ashlynn Anderson |Czech |Phonetic |<nowiki><code>plover-czech</code></nowiki> |} == Especias == === Finnish Especias === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500"> An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Especias''' |Lars Rune Præstmark |Finnish |Orthographic |Built-in |Dictionary |} === Spanish Especias === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500"> A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Especias''' |Lars Rune Præstmark |Spanish |Orthographic |Built-in |Dictionary |} [[Category:Stenography]] b06a5c7d0030db07c22eb1a9aaf73c3c7e3d679c 151 150 2024-02-11T17:38:39Z Rice 1 wikitext text/x-wiki A chorded system, or ''system'' for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. '''System Plugins''' allow Plover to support different machine types and languages other than English. The [[wikipedia:Stenotype|American Ward Stone Ireland Stenotype]] is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover. Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system. For systems proposed for implementation, check out the [https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems issues list]. {| class="wikitable" |- |🔴 |Not supported in Plover |- |🟠 |Work in progress, not actively updated or maintained |- |🟡 |Work in progress |- |🟢 |Stable and available for Plover |} == Stenotype (Ireland) == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500"> The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Plover''' |Mirabai Knight |English |Phonetic |Built-in |147k entries |Learning Resources |- |🟢 '''Lapwing''' |Aerick |English |Phonetic |Built-in |115k entries |Learning Resources |- |🟡 '''Cocoa''' |Kaoffie |English |Phonetic |Built-in |- |🟢 '''LaSalle''' |Claire Lefebvre-Yelle |French |Phonetic |Built-in |4.2k entries |Non-realtime-capable theory, taught at the ''École de sténographie judiciaire du Québec'' |- |🟡 '''Pluvier''' |Vermoot |French |Phonetic | | |Realtime-capable theory based on LaSalle |- |🟢 '''Easy Korean Steno''' |Peter Park |Korean |Orthographic |Requires plover-python-dictionary |Python Dictionary |- |🟢 '''Stanley's''' |Stanley Sakai |Spanish |Phonetic |Built-in |12k entries |- |🟢 '''EO Variant''' |Eliseo Ocampos |Spanish |Phonetic |plover-spanish-system-eo-variant |71k entries |Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules. |- |🔴 '''Marino''' | |Spanish |Phonetic | | |Spanish theory used in the Argentine Senate, along with Spanish Grandjean.<nowiki><br></nowiki>Overview<nowiki><br></nowiki>Facebook Page |- |🟢 '''Trillo Finnish''' |Priscilla Trillo |Finnish |Phonetic | |49k entries |Textbook (in Finnish) |- |🟢 '''Aerick's''' |Aerick |Vietnamese |Orthographic |Built-in |7k entries |Learning Resources |- |🟢 '''plover-vi''' |user202729 |Vietnamese |Orthographic |<nowiki><code>plover-vi</code></nowiki> |- |🟡 '''Hindi Devanagari''' |winston |Hindi |Phonetic |N/A |1,404 entries |Home Page |} === Shavian === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500"> Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Magpie''' |Lynn (Ruma) |English (Shavian) |Orthographic | | |Capable of both Shavian and orthodox (Latin script) translation |} === Brazilian Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500"> Brazilian Portuguese system used by Paulo Paniago, published in the textbook ''Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador''. Also included in some Stenograph machines. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Brazilian Stenograph''' |Randall Adam Czerenda, Jucineia J. de Andrade Pereira |Portuguese |Phonetic |<nowiki><code>plover-portuguese</code></nowiki> |4k entries<nowiki><br></nowiki>(available on the Plover Discord) |} === Czech Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500"> The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Czech Stenograph''' | |Czech |Phonetic |} === Greek Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500"> The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Greek Stenograph''' | |Greek |Phonetic |} === Hebrew Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500"> The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Hebrew Stenograph''' | |Hebrew |Phonetic |} === Turkish Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500"> The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Turkish Stenograph''' | |Turkish |Phonetic |} === Russian Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500"> The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Russian Stenograph''' | |Russian |Phonetic |} === Spanish Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500"> The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Spanish Stenograph''' | |Spanish |Phonetic |} === German Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500"> German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''German Stenograph''' | |German |Phonetic |<nowiki><code>plover-german</code></nowiki> |} === Regenpfeifer === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500"> A German steno system based on a modified English stenotype layout; the <code>-Z</code> key is replaced with <code>-N</code>. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Regenpfeifer''' |Martin Körner |German |Phonetic |<nowiki><code>plover-regenpfeifer</code></nowiki> |219k entries |Dictionary generator |} === German Syllatype === A syllabic and orthographic system with the mission to be more intuitive and easy to learn. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Syllatype''' |YAMERO |German |Orthographic |<nowiki><code>plover-german-syllatype</code></nowiki> |5k+ entries (syllables) | |} === 42triangles' Kana System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500"> Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''42triangles' Kana System''' |42triangles |Japanese |Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only | | |Relies on a user IME |} === Willem's Kana System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500"> A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Willem's Kana System''' |Willem Sonke |Japanese |Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only |<nowiki><code>plover-japanese-kana</code></nowiki> | |Relies on a user IME |} === Danish Hjejle === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500"> A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Hjejle''' |Lars Rune Præstmark |Danish |Phonetic |Built-in |5k entries |} === Melani === ==== Italian ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Melani''' | |Italian |Orthographic |<nowiki><code>plover-melani</code></nowiki> | |Stenolab |} ==== Spanish ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500"> Spanish system based on the Melani Italian layout, used at MQD. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''MQD Melani''' |Noelia Ruiz Martínez |Spanish |Phonetic |<nowiki><code>plover-spanish-mqd</code></nowiki> |11k entries |} ==== Russian ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500"> Not much is known about this layout; see this discussion about Russian steno. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Melani''' | |Russian |Phonetic |} === Thai Steno === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500"> A work-in-progress Thai steno system. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Thai Steno''' |Parnikkapore |Thai |Phonetic |<nowiki><code>plover-thsteno</code></nowiki> |} === Jade's Dutch System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500"> Dutch steno system that uses a modified version of the English stenotype layout with one extra <code>G</code> key on the left. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Jade's Dutch System''' |Jade Geels |Dutch |Phonetic |<nowiki><code>plover-dutch</code></nowiki> |3.4k entries |} === Willem's Dutch System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500"> Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Willem's Dutch System''' |Willem Sonke |Dutch |Phonetic |<nowiki><code>plover-dutch</code></nowiki> |7.7k entries |} == Grandjean == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500"> The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts). {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Grandjean''' | |French |Phonetic |<nowiki><code>plover-grandjean</code></nowiki> |690k+ entries |GitHub |- |🔴 '''Grandjean''' | |Spanish |Phonetic | | |Asociacion Española de Estenotipistas |} == Michela == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500"> A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent. {| class="wikitable" |+ ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Michela''' |Sillabix |Italian |Phonetic |[https://github.com/benoit-pierre/plover_michela plover-michela] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano 103k entries] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano Manual] |- |🟡 '''Michela''' |Sillabix |English |Phonetic |[https://github.com/benoit-pierre/plover_michela plover-michela] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json 150 entries] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction) Manual] |- |🟡 '''Midi4Text''' |Sillabix |Italian |Orthographic |[https://github.com/nsmarkop/plover_midi4text plover-midi4text] |[http://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json 95k entries] |[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA) Manual] |- |🟡 '''Midi4Text''' |Sillabix |English |Orthographic |[https://github.com/nsmarkop/plover_midi4text plover-midi4text] |[https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.8).json 159k entries] |[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG) Manual] |} == Possum Palantype == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500"> The Possum Palantype is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some STTRs worldwide for writing in English. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Palantype''' | |English |Phonetic |<nowiki><code>plover-palantype</code></nowiki> |21k entries |Learn Palantype |- |🔴 '''Swedish Palantype''' | |Swedish |Phonetic |<nowiki><code>plover-swedish-palantype</code></nowiki> |87k entries |Swedish Theory |} === Plover German Palantype === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500"> German steno system based on the Possum Palantype layout with two additional keys. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''German Palantype''' | |German |Phonetic |<nowiki><code>plover-palantype-german</code></nowiki> |85k entries |} === Ruben Moor's German Palantype === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''German Palantype''' |Ruben Moor |German |Phonetic | |100k entries, with plans to expand to 2 million |Tutorial |} == Trillo == === Trillo Russian === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500"> A realtime theory for Russian writing based on the Tréal machine. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Trillo Russian''' |Priscilla Trillo |Russian |Phonetic |<nowiki><code>plover-russian-trillo</code></nowiki> |15k entries |Textbook (in mixed English/Russian) |} === Trillo West Slavic === <img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Trillo West Slavic''' |Priscilla Trillo |Czech, Slovak, Polish |Phonetic | | |Textbook |} == Yawei == === Yawei === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500"> Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Yawei''' (亚伟) | |Mandarin (Traditional / Simplified) |Symmetric Toneless Pinyin | | |Wikipedia |} === MaaJik === <img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''MaaJik''' (孖翼) |Sammi de Guzman, Samuel Lo |Cantonese (Traditional) |Symmetric Toneless Jyutping |<nowiki><code>plover-maajik</code></nowiki> |314k entries |} === SanSan === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''SanSan''' (珊々) |Sammi de Guzman |Cantonese (Traditional) |Symmetric Toneless Jyutping | | |Steno Explainers |} === TCIM === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''TCIM''' (千鳥詞注) |Quisette C |Mandarin (Traditional) |Symmetric Toneless Zhuyin |<nowiki><code>plover-tcim</code></nowiki> |} == EXun == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500"> EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''EXun''' (E 讯) | |Mandarin (Simplified) |Symmetric Toneless Pinyin |} == Suoheng == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500"> Very little is known about the Suoheng system and there are no plans to implement it in Plover. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Suoheng''' (索恒) | |Mandarin (Simplified) |Symmetric Toneless Pinyin |} == Korean CAS == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500"> The Computer Aided Steno-machine, or CAS, was developed by Korea Steno and features one of the two modern stenography systems for Korean in use today. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''CAS''' | |Korean |Orthographic (Initial/Medial/Final) with Briefs |<nowiki><code>plover-korean</code></nowiki> ("Korean Modern C") | |Theory documentation |} == Korean Sorizava == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500"> Sorizava, developed by a company of the same name, is the second of the modern stenography systems for Korean in use today and the more recent to have been created. The Sorizava system is not currently under development. There are partial pieces of an implementation in plover-korean but outside of a partial dictionary no theory materials have been obtained to progress further. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Sorizava''' | |Korean |Orthographic (Initial/Medial/Final) with Briefs |<nowiki><code>plover-korean</code></nowiki> ("Korean Modern S") |} == Sokutaipu == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500"> Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Sokutaipu''' (ソクタイプ) | |Japanese |Semi-Symmetric 2 Mora + 1 Coda<nowiki><br></nowiki>Pure Kana |<nowiki><code>plover-japanese-sokutaipu</code></nowiki> |365k entries |Kana table |} == StenoWord == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500"> The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''StenoWord''' (ステノワード) | |Japanese |Orthographic 1-Syllable<nowiki><br></nowiki>Pure Kana |<nowiki><code>plover-japanese-stenoword</code></nowiki> |2.6k entries |Kana table |} == Frag's Japanese System == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Frag's Japanese System''' |Frag |Japanese |Symmetric 2 Mora + 2 Coda<nowiki><br></nowiki>Stucture-based kanji conversion |} A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke. This is the updated version of the Japanese layout available on TypeyType. == Hachidori == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500"> Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Hachidori''' (はちどり) |Kaoffie |Japanese |Symmetric 2 Mora + 2 Coda |} == Velotype == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500"> The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in Qweyboard by kqr. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Velotype''' | |English, Dutch |Orthographic |<nowiki><code>plover-syllabic-chording</code></nowiki> | |Official website |} == Jackdaw == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500"> An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Jackdaw''' | |English |Orthographic |<nowiki><code>plover-jackdaw-alt1</code></nowiki> | |Learn Plover! Jackdaw tutorial |} == Kinglet == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500"> Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Kinglet''' |Zachary Brown |English |Orthographic |Plover 2.5.8 modified for Kinglet | |Learn Plover! Kinglet tutorial |} == Phenrsteno == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500"> Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Phenrsteno''' |Gregory Chamberlain |English |Phonetic |<nowiki><code>plover-phenrsteno</code></nowiki> |15k entries |Phenrsteno wiki |} == Plover Czech == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Plover Czech''' |Ashlynn Anderson |Czech |Phonetic |<nowiki><code>plover-czech</code></nowiki> |} == Especias == === Finnish Especias === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500"> An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Especias''' |Lars Rune Præstmark |Finnish |Orthographic |Built-in |Dictionary |} === Spanish Especias === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500"> A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Especias''' |Lars Rune Præstmark |Spanish |Orthographic |Built-in |Dictionary |} [[Category:Stenography]] 63363e05807a0d52dd3ecdaac876dd301cf8126a 152 151 2024-02-11T18:05:35Z Rice 1 wikitext text/x-wiki A chorded system, or ''system'' for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. '''System Plugins''' allow Plover to support different machine types and languages other than English. The [[wikipedia:Stenotype|American Ward Stone Ireland Stenotype]] is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover. Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system. For systems proposed for implementation, check out the [https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems issues list]. {| class="wikitable" |- |🔴 |Not supported in Plover |- |🟠 |Work in progress, not actively updated or maintained |- |🟡 |Work in progress |- |🟢 |Stable and available for Plover |} == Languages == * English: ** Stenotype ** Palantype ** Michela ** Phenrsteno ** Velotype ** Jackdaw ** Kinglet * Chinese, Mandarin (國語 / 普通话): ** Yawei ** EXun ** Suoheng * Chinese, Cantonese (粵語): ** SanSan ** MaaJik * Czech / Čeština: ** Stenotype ** Trillo ** Plover Czech * Danish / Dansk: Stenotype * Dutch / Nederlands: ** Stenotype ** Velotype * Finnish / Suomi: ** Stenotype ** Especias * French / Français: ** Stenotype ** Grandjean * German / Deutsch: ** Stenotype ** Palantype ** Syllatype * Greek / Ελληνικά: Stenotype * Hebrew / עברית: Stenotype * Hindi / हिन्दी: Stenotype * Italian / Italiano: ** Stenotype ** Michela * Japanese / 日本語: ** Stenotype ** Sokutaipu ** StenoWord ** Hachidori ** Frag * Korean / 한국어: ** CAS ** Sorizava * Polish / Polski: Trillo * Portuguese / Português: Stenotype * Russian / Русский: ** Stenotype ** Trillo * Slovak / Slovenčina: Trillo * Spanish / Español: ** Stenotype ** Grandjean ** Especias * Swedish / Svenska: Palantype * Thai / ภาษาไทย: Stenotype * Turkish / Türkçe: Stenotype * Vietnamese / Tiếng Việt: Stenotype == Stenotype (Ireland) == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500"> The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Plover''' |Mirabai Knight |English |Phonetic |Built-in |[https://github.com/openstenoproject/plover/blob/master/plover/assets/main.json 147k entries] |[[Learning Stenography|Learning Resources]] |- |🟢 '''Lapwing''' |[https://github.com/aerickt Aerick] |English |Phonetic |Built-in |[https://github.com/aerickt/steno-dictionaries/blob/main/lapwing-base.json 130k entries] |[https://lapwing.aerick.ca/ Learning Resources] |- |🟡 '''Cocoa''' |[https://github.com/Kaoffie Kaoffie] |English |Phonetic |Built-in | | |- |🟢 '''LaSalle''' |Claire Lefebvre-Yelle |French |Phonetic |Built-in |[https://github.com/morinted/la_tao_dictionary 4.2k entries] |Non-realtime-capable theory, taught at the ''École de sténographie judiciaire du Québec'' |- |🟡 '''Pluvier''' |[https://github.com/Vermoot Vermoot] |French |Phonetic | | |Realtime-capable theory based on LaSalle |- |🟢 '''Easy Korean Steno''' |Peter Park |Korean |Orthographic |Requires [https://github.com/openstenoproject/plover_python_dictionary plover-python-dictionary] |[https://github.com/petercpark/easy_korean_steno/blob/master/easy_Korean_steno_chorded.py Python Dictionary] | |- |🟢 '''Stanley's''' |[https://github.com/stanographer Stanley Sakai] |Spanish |Phonetic |Built-in |[https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json 12k entries] | |- |🟢 '''EO Variant''' |[https://github.com/roskoff Eliseo Ocampos] |Spanish |Phonetic |[https://github.com/roskoff/plover_spanish_system_eo_variant plover-spanish-system-eo-variant] |71k entries |Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules. |- |🔴 '''Marino''' | |Spanish |Phonetic | | |Spanish theory used in the Argentine Senate, along with Spanish Grandjean. [https://taquigrafica.ucoz.net/publ/edicion_numero_01/2-1-0-14 Overview] [https://www.facebook.com/stenocap Facebook Page] |- |🟢 '''Trillo Finnish''' |Priscilla Trillo |Finnish |Phonetic | |[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/Suomeksi.rtf 49k entries] |[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/PIKAKIRJOITUS%20SUOMEKSI.pdf Textbook] (in Finnish) |- |🟢 '''Aerick's''' |[https://github.com/aerickt Aerick] |Vietnamese |Orthographic |Built-in |[https://github.com/aerickt/steno-dictionaries/blob/main/viet.json 7k entries] |[https://github.com/aerickt/steno-dictionaries/wiki/Vietnamese-Steno Learning Resources] |- |🟢 '''plover-vi''' |user202729 |Vietnamese |Orthographic |[https://github.com/user202729/plover_vi <code>plover-vi</code>] | | |- |🟡 '''Hindi Devanagari''' |[https://github.com/winstond/hind_plover_dictionary winston] |Hindi |Phonetic |N/A |[https://github.com/winstond/hind_plover_dictionary 1,404 entries] |[https://github.com/winstond/hind_plover_dictionary Home Page] |} === Shavian === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500"> Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Magpie''' |Lynn (Ruma) |English (Shavian) |Orthographic | | |Capable of both Shavian and orthodox (Latin script) translation |} === Brazilian Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500"> Brazilian Portuguese system used by Paulo Paniago, published in the textbook ''Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador''. Also included in some Stenograph machines. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Brazilian Stenograph''' |Randall Adam Czerenda, Jucineia J. de Andrade Pereira |Portuguese |Phonetic |<code>[https://github.com/morinted/plover_portuguese plover-portuguese]</code> |4k entries<nowiki><br></nowiki>(available on the Plover Discord) |} === Czech Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500"> The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Czech Stenograph''' | |Czech |Phonetic |} === Greek Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500"> The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Greek Stenograph''' | |Greek |Phonetic |} === Hebrew Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500"> The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Hebrew Stenograph''' | |Hebrew |Phonetic |} === Turkish Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500"> The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Turkish Stenograph''' | |Turkish |Phonetic |} === Russian Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500"> The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Russian Stenograph''' | |Russian |Phonetic |} === Spanish Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500"> The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Spanish Stenograph''' | |Spanish |Phonetic |} === German Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500"> German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''German Stenograph''' | |German |Phonetic |<code>[https://github.com/percidae/plover_german plover-german]</code> |} === Regenpfeifer === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500"> A German steno system based on a modified English stenotype layout; the <code>-Z</code> key is replaced with <code>-N</code>. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Regenpfeifer''' |[https://github.com/mkrnr Martin Körner] |German |Phonetic |[https://github.com/mkrnr/plover_regenpfeifer <code>plover-regenpfeifer</code>] |219k entries |[https://github.com/mkrnr/regenpfeifer Dictionary generator] |} === German Syllatype === A syllabic and orthographic system with the mission to be more intuitive and easy to learn. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Syllatype''' |[https://github.com/YAMEROOOO YAMERO] |German |Orthographic |[https://github.com/YAMEROOOO/plover-german-syllatype plover-german-syllatype] |5k+ entries (syllables) | |} === 42triangles' Kana System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500"> Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''42triangles' Kana System''' |42triangles |Japanese |Orthographic (Mora + Coda) Romaji-only | | |Relies on a user IME |} === Willem's Kana System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500"> A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Willem's Kana System''' |[https://github.com/Willem3141 Willem Sonke] |Japanese |Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only |[https://github.com/Willem3141/plover_japanese_kana <code>plover-japanese-kana</code>] | |Relies on a user IME |} === Danish Hjejle === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500"> A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Hjejle''' |[https://github.com/SeaLiteral Lars Rune Præstmark] |Danish |Phonetic |Built-in |[https://github.com/SeaLiteral/hjejleOrdbog 5k entries] |} === Melani === ==== Italian ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Melani''' | |Italian |Orthographic |[https://github.com/benoit-pierre/plover_melani <code>plover-melani</code>] | |[https://www.stenolab.it/ Stenolab] |} ==== Spanish ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500"> Spanish system based on the Melani Italian layout, used at MQD. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''MQD Melani''' |[https://github.com/nvdaes Noelia Ruiz Martínez] |Spanish |Phonetic |[https://github.com/nvdaes/plover_spanish_mqd <code>plover-spanish-mqd</code>] |[https://github.com/nvdaes/plover_spanish_mqd/tree/main/plover_spanish_mqd 11k entries] |} ==== Russian ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500"> Not much is known about this layout; see [https://github.com/openstenoproject/plover/issues/492 th][https://github.com/parnikkapore/plover_thsteno plover-thsteno]is discussion about Russian steno. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Melani''' | |Russian |Phonetic |} === Thai Steno === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500"> A work-in-progress Thai steno system. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Thai Steno''' |Parnikkapore |Thai |Phonetic |[https://github.com/parnikkapore/plover_thsteno <code>plover-thsteno</code>] |} === Jade's Dutch System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500"> Dutch steno system that uses a modified version of the English stenotype layout with one extra <code>G</code> key on the left. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Jade's Dutch System''' |[https://github.com/Jade-GG Jade Geels] |Dutch |Phonetic |[https://github.com/Jade-GG/Plover_Dutch <code>plover-dutch</code>] |3.4k entries |} === Willem's Dutch System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500"> Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Willem's Dutch System''' |[https://github.com/Willem3141 Willem Sonke] |Dutch |Phonetic |<code>[https://github.com/Willem3141/plover_dutch plover-dutch]</code> |7.7k entries |} == Grandjean == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500"> The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts). {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Grandjean''' | |French |Phonetic |[https://github.com/stenomax/plover_grandjean <code>plover-grandjean</code>] |[https://github.com/azizyemloul/plover-france-dict 690k+ entries] |[https://github.com/azizyemloul/plover-france-dict GitHub] |- |🔴 '''Grandjean''' | |Spanish |Phonetic | | |[http://www.estenotipiaasociacion.com/ Asociacion Española de Estenotipistas] |} == Michela == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500"> A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent. {| class="wikitable" |+ ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Michela''' |Sillabix |Italian |Phonetic |[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano 103k entries] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano Manual] |- |🟡 '''Michela''' |Sillabix |English |Phonetic |[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json 150 entries] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction) Manual] |- |🟡 '''Midi4Text''' |Sillabix |Italian |Orthographic |[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>] |[http://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json 95k entries] |[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA) Manual] |- |🟡 '''Midi4Text''' |Sillabix |English |Orthographic |[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>] |[https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.8).json 159k entries] |[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG) Manual] |} == Possum Palantype == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500"> The [http://www.openstenoproject.org/palantype Possum Palantype] is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some [[wikipedia:Speech-to-text_reporter|STTRs]] worldwide for writing in English. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Palantype''' | |English |Phonetic |[https://github.com/morinted/plover_palantype <code>plover-palantype</code>] |21k entries |[http://www.openstenoproject.org/palantype/ Learn Palantype] |- |🔴 '''Swedish Palantype''' | |Swedish |Phonetic |<code>[https://github.com/stenoshrink/plover_swedish_palantype plover-swedish-palantype]</code> |87k entries |[https://github.com/stenoshrink/plover_swedish_palantype/tree/master/Swedish%20theory Swedish Theory] |} === Plover German Palantype === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500"> German steno system based on the Possum Palantype layout with two additional keys. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''German Palantype''' | |German |Phonetic |[https://github.com/percidae/plover_palantype_german <code>plover-palantype-german</code>] |85k entries |} === Ruben Moor's German Palantype === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''German Palantype''' |Ruben Moor |German |Phonetic | |100k entries, with plans to expand to 2 million |[https://palantype.com/ Tutorial] |} == Trillo == === Trillo Russian === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500"> A realtime theory for Russian writing based on the Tréal machine. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Trillo Russian''' |Priscilla Trillo |Russian |Phonetic |[https://github.com/morinted/plover_russian_trillo <code>plover-russian-trillo</code>] |15k entries |[https://github.com/openstenoproject/plover/files/1533593/Russian.Theory.-.ARA.doc.zip Textbook] (in mixed English/Russian) |} === Trillo West Slavic === <img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Trillo West Slavic''' |Priscilla Trillo |Czech, Slovak, Polish |Phonetic | | |[https://github.com/Plover-Trillo/WestSlavicStenography/releases/tag/%23SlavicLanguages Textbook] |} == Yawei == === Yawei === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500"> Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Yawei''' (亚伟) | |Mandarin (Traditional / Simplified) |Symmetric Toneless Pinyin | | |[https://zh.wikipedia.org/wiki/%E4%BA%9A%E4%BC%9F%E9%80%9F%E5%BD%95 Wikipedia] |} === MaaJik === <img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''MaaJik''' (孖翼) |[https://github.com/sammdot Sammi de Guzman], [https://github.com/vatnid Samuel Lo] |Cantonese (Traditional) |Symmetric Toneless Jyutping |[https://github.com/sammdot/plover-maajik <code>plover-maajik</code>] |[https://github.com/sammdot/plover-maajik/tree/main/maajik/dictionaries 314k entries] |} === SanSan === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''SanSan''' (珊々) |[https://github.com/sammdot Sammi de Guzman] |Cantonese (Traditional) |Symmetric Toneless Jyutping | | |[https://steno.sammdot.ca/explainers Steno Explainers] |} === TCIM === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''TCIM''' (千鳥詞注) |[https://github.com/Quisette Quisette C] |Mandarin (Traditional) |Symmetric Toneless Zhuyin |[https://github.com/Quisette/plover-TCIM <code>plover-tcim</code>] |} == EXun == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500"> EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''EXun''' (E 讯) | |Mandarin (Simplified) |Symmetric Toneless Pinyin |} == Suoheng == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500"> Very little is known about the Suoheng system and there are no plans to implement it in Plover. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Suoheng''' (索恒) | |Mandarin (Simplified) |Symmetric Toneless Pinyin |} == Korean CAS == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500"> The Computer Aided Steno-machine, or CAS, was developed by [http://www.koreasteno.com/ Korea Steno] and features one of the two modern stenography systems for Korean in use today. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''CAS''' | |Korean |Orthographic (Initial/Medial/Final) with Briefs |[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern C") | |[https://github.com/nsmarkop/plover_korean/tree/master/plover_korean/system/cas Theory documentation] |} == Korean Sorizava == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500"> Sorizava, developed by a [http://www.sorizava.co.kr/ company of the same name], is the second of the modern stenography systems for Korean in use today and the more recent to have been created. The Sorizava system is not currently under development. There are partial pieces of an implementation in <code>[https://github.com/nsmarkop/plover_korean plover-korean]</code> but outside of a partial dictionary no theory materials have been obtained to progress further. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Sorizava''' | |Korean |Orthographic (Initial/Medial/Final) with Briefs |[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern S") | | |} == Sokutaipu == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500"> Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Sokutaipu''' (ソクタイプ) | |Japanese |Semi-Symmetric 2 Mora + 1 Coda Pure Kana |[https://github.com/na4zagin3/plover_japanese_sokutaipu <code>plover-japanese-sokutaipu</code>] |365k entries |[http://hoangmoc123.d.dooo.jp/sokutaipu.html Kana table] |} == StenoWord == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500"> The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''StenoWord''' (ステノワード) | |Japanese |Orthographic 1-Syllable Pure Kana |<code>plover-japanese-stenoword</code> |2.6k entries |[http://hoangmoc123.d.dooo.jp/Stenoword.html Kana table] |} == Frag's Japanese System == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Frag's Japanese System''' |Frag |Japanese |Symmetric 2 Mora + 2 Coda Stucture-based kanji conversion |} A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke. This is the updated version of the Japanese layout available on TypeyType. == Hachidori == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500"> Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Hachidori''' (はちどり) |[https://github.com/Kaoffie Kaoffie] |Japanese |Symmetric 2 Mora + 2 Coda |} == Velotype == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500"> The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in [https://github.com/kqr/qweyboard Qweyboard] by kqr. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Velotype''' | |English, Dutch |Orthographic |[https://github.com/AlexandraAlter/plover_syllabic_chording <code>plover-syllabic-chording</code>] | |[https://www.velotype.com/en/homepage-eng/ Official website] |} == Jackdaw == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500"> An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Jackdaw''' | |English |Orthographic |<code>[https://github.com/user202729/plover-jackdaw-alt1 plover-jackdaw-alt1]</code> | |[https://www.openstenoproject.org/learn-plover/jackdaw.html Learn Plover! Jackdaw tutorial] |} == Kinglet == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500"> Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Kinglet''' |Zachary Brown |English |Orthographic |[https://drive.google.com/file/d/0B9Je8TDYCh1xSVRjVmQ0RUF0ejA/edit?resourcekey=0-6XylRvd298I4w4OVUc-IDg Plover 2.5.8 modified for Kinglet] | |[https://www.openstenoproject.org/learn-plover/kinglet-a-letter-based-stenotype-system.html Learn Plover! Kinglet tutorial] |} == Phenrsteno == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500"> Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Phenrsteno''' |[https://github.com/chambln Gregory Chamberlain] |English |Phonetic |[https://github.com/chambln/plover-phenrsteno <code>plover-phenrsteno</code>] |15k entries |[https://github.com/chambln/plover-phenrsteno/wiki Phenrsteno wiki] |} == Plover Czech == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Plover Czech''' |[https://github.com/lambdadog Ashlynn Anderson] |Czech |Phonetic |[https://github.com/lambdadog/plover_czech <code>plover-czech</code>] |} == Especias == === Finnish Especias === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500"> An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Especias''' |[https://github.com/SeaLiteral Lars Rune Præstmark] |Finnish |Orthographic |Built-in |[https://github.com/SeaLiteral/especias Dictionary] |} === Spanish Especias === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500"> A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Especias''' |[https://github.com/SeaLiteral Lars Rune Præstmark] |Spanish |Orthographic |Built-in |[https://github.com/SeaLiteral/especias Dictionary] |} [[Category:Stenography]] 1fb088bb29df8e5b13629ac3415d40313e41a599 153 152 2024-02-11T18:19:52Z Rice 1 /* Languages */ wikitext text/x-wiki A chorded system, or ''system'' for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. '''System Plugins''' allow Plover to support different machine types and languages other than English. The [[wikipedia:Stenotype|American Ward Stone Ireland Stenotype]] is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover. Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system. For systems proposed for implementation, check out the [https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems issues list]. {| class="wikitable" |- |🔴 |Not supported in Plover |- |🟠 |Work in progress, not actively updated or maintained |- |🟡 |Work in progress |- |🟢 |Stable and available for Plover |} == Languages == * English: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]] ** [[Steno Layouts and Supported Languages#Michela|Michela]] ** [[Steno Layouts and Supported Languages#Phenrsteno|Phenrsteno]] ** [[Steno Layouts and Supported Languages#Velotype|Velotype]] ** [[Steno Layouts and Supported Languages#Jackdaw|Jackdaw]] ** [[Steno Layouts and Supported Languages#Kinglet|Kinglet]] * Chinese, Mandarin (國語 / 普通话): ** [[Steno Layouts and Supported Languages#Yawei|Yawei]] ** [[Steno Layouts and Supported Languages#EXun|EXun]] ** [[Steno Layouts and Supported Languages#Suoheng|Suoheng]] * Chinese, Cantonese (粵語): ** [[Steno Layouts and Supported Languages#SanSan|SanSan]] ** [[Steno Layouts and Supported Languages#MaaJik|MaaJik]] * Czech / Čeština: ** [[Steno Layouts and Supported Languages#Czech Stenograph|Stenotype]] ** [[Steno Layouts and Supported Languages#Trillo|Trillo]] ** [[Steno Layouts and Supported Languages#Plover Czech|Plover Czech]] * Danish / Dansk: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Dutch / Nederlands: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Velotype|Velotype]] * Finnish / Suomi: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Especias|Especias]] * French / Français: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Grandjean|Grandjean]] * German / Deutsch: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]] ** [[Steno Layouts and Supported Languages#German Syllatype|Syllatype]] * Greek / Ελληνικά: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Hebrew / עברית: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Hindi / हिन्दी: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Italian / Italiano: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Michela|Michela]] * Japanese / 日本語: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Sokutaipu|Sokutaipu]] ** [[Steno Layouts and Supported Languages#StenoWord|StenoWord]] ** [[Steno Layouts and Supported Languages#Hachidori|Hachidori]] ** [[Steno Layouts and Supported Languages#Frag's Japanese System|Frag]] * Korean / 한국어: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Korean CAS|CAS]] ** [[Steno Layouts and Supported Languages#Korean Sorizava|Sorizava]] * Polish / Polski: [[Steno Layouts and Supported Languages#Trillo|Trillo]] * Portuguese / Português: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Russian / Русский: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Trillo|Trillo]] * Slovak / Slovenčina: [[Steno Layouts and Supported Languages#Trillo|Trillo]] * Spanish / Español: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Grandjean|Grandjean]] ** [[Steno Layouts and Supported Languages#Especias|Especias]] * Swedish / Svenska: [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]] * Thai / ภาษาไทย: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Turkish / Türkçe: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Vietnamese / Tiếng Việt: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] == Stenotype (Ireland) == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500"> The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Plover''' |Mirabai Knight |English |Phonetic |Built-in |[https://github.com/openstenoproject/plover/blob/master/plover/assets/main.json 147k entries] |[[Learning Stenography|Learning Resources]] |- |🟢 '''Lapwing''' |[https://github.com/aerickt Aerick] |English |Phonetic |Built-in |[https://github.com/aerickt/steno-dictionaries/blob/main/lapwing-base.json 130k entries] |[https://lapwing.aerick.ca/ Learning Resources] |- |🟡 '''Cocoa''' |[https://github.com/Kaoffie Kaoffie] |English |Phonetic |Built-in | | |- |🟢 '''LaSalle''' |Claire Lefebvre-Yelle |French |Phonetic |Built-in |[https://github.com/morinted/la_tao_dictionary 4.2k entries] |Non-realtime-capable theory, taught at the ''École de sténographie judiciaire du Québec'' |- |🟡 '''Pluvier''' |[https://github.com/Vermoot Vermoot] |French |Phonetic | | |Realtime-capable theory based on LaSalle |- |🟢 '''Easy Korean Steno''' |Peter Park |Korean |Orthographic |Requires [https://github.com/openstenoproject/plover_python_dictionary plover-python-dictionary] |[https://github.com/petercpark/easy_korean_steno/blob/master/easy_Korean_steno_chorded.py Python Dictionary] | |- |🟢 '''Stanley's''' |[https://github.com/stanographer Stanley Sakai] |Spanish |Phonetic |Built-in |[https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json 12k entries] | |- |🟢 '''EO Variant''' |[https://github.com/roskoff Eliseo Ocampos] |Spanish |Phonetic |[https://github.com/roskoff/plover_spanish_system_eo_variant plover-spanish-system-eo-variant] |71k entries |Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules. |- |🔴 '''Marino''' | |Spanish |Phonetic | | |Spanish theory used in the Argentine Senate, along with Spanish Grandjean. [https://taquigrafica.ucoz.net/publ/edicion_numero_01/2-1-0-14 Overview] [https://www.facebook.com/stenocap Facebook Page] |- |🟢 '''Trillo Finnish''' |Priscilla Trillo |Finnish |Phonetic | |[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/Suomeksi.rtf 49k entries] |[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/PIKAKIRJOITUS%20SUOMEKSI.pdf Textbook] (in Finnish) |- |🟢 '''Aerick's''' |[https://github.com/aerickt Aerick] |Vietnamese |Orthographic |Built-in |[https://github.com/aerickt/steno-dictionaries/blob/main/viet.json 7k entries] |[https://github.com/aerickt/steno-dictionaries/wiki/Vietnamese-Steno Learning Resources] |- |🟢 '''plover-vi''' |user202729 |Vietnamese |Orthographic |[https://github.com/user202729/plover_vi <code>plover-vi</code>] | | |- |🟡 '''Hindi Devanagari''' |[https://github.com/winstond/hind_plover_dictionary winston] |Hindi |Phonetic |N/A |[https://github.com/winstond/hind_plover_dictionary 1,404 entries] |[https://github.com/winstond/hind_plover_dictionary Home Page] |} === Shavian === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500"> Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Magpie''' |Lynn (Ruma) |English (Shavian) |Orthographic | | |Capable of both Shavian and orthodox (Latin script) translation |} === Brazilian Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500"> Brazilian Portuguese system used by Paulo Paniago, published in the textbook ''Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador''. Also included in some Stenograph machines. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Brazilian Stenograph''' |Randall Adam Czerenda, Jucineia J. de Andrade Pereira |Portuguese |Phonetic |<code>[https://github.com/morinted/plover_portuguese plover-portuguese]</code> |4k entries<nowiki><br></nowiki>(available on the Plover Discord) |} === Czech Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500"> The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Czech Stenograph''' | |Czech |Phonetic |} === Greek Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500"> The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Greek Stenograph''' | |Greek |Phonetic |} === Hebrew Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500"> The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Hebrew Stenograph''' | |Hebrew |Phonetic |} === Turkish Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500"> The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Turkish Stenograph''' | |Turkish |Phonetic |} === Russian Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500"> The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Russian Stenograph''' | |Russian |Phonetic |} === Spanish Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500"> The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Spanish Stenograph''' | |Spanish |Phonetic |} === German Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500"> German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''German Stenograph''' | |German |Phonetic |<code>[https://github.com/percidae/plover_german plover-german]</code> |} === Regenpfeifer === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500"> A German steno system based on a modified English stenotype layout; the <code>-Z</code> key is replaced with <code>-N</code>. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Regenpfeifer''' |[https://github.com/mkrnr Martin Körner] |German |Phonetic |[https://github.com/mkrnr/plover_regenpfeifer <code>plover-regenpfeifer</code>] |219k entries |[https://github.com/mkrnr/regenpfeifer Dictionary generator] |} === German Syllatype === A syllabic and orthographic system with the mission to be more intuitive and easy to learn. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Syllatype''' |[https://github.com/YAMEROOOO YAMERO] |German |Orthographic |[https://github.com/YAMEROOOO/plover-german-syllatype plover-german-syllatype] |5k+ entries (syllables) | |} === 42triangles' Kana System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500"> Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''42triangles' Kana System''' |42triangles |Japanese |Orthographic (Mora + Coda) Romaji-only | | |Relies on a user IME |} === Willem's Kana System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500"> A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Willem's Kana System''' |[https://github.com/Willem3141 Willem Sonke] |Japanese |Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only |[https://github.com/Willem3141/plover_japanese_kana <code>plover-japanese-kana</code>] | |Relies on a user IME |} === Danish Hjejle === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500"> A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Hjejle''' |[https://github.com/SeaLiteral Lars Rune Præstmark] |Danish |Phonetic |Built-in |[https://github.com/SeaLiteral/hjejleOrdbog 5k entries] |} === Melani === ==== Italian ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Melani''' | |Italian |Orthographic |[https://github.com/benoit-pierre/plover_melani <code>plover-melani</code>] | |[https://www.stenolab.it/ Stenolab] |} ==== Spanish ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500"> Spanish system based on the Melani Italian layout, used at MQD. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''MQD Melani''' |[https://github.com/nvdaes Noelia Ruiz Martínez] |Spanish |Phonetic |[https://github.com/nvdaes/plover_spanish_mqd <code>plover-spanish-mqd</code>] |[https://github.com/nvdaes/plover_spanish_mqd/tree/main/plover_spanish_mqd 11k entries] |} ==== Russian ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500"> Not much is known about this layout; see [https://github.com/openstenoproject/plover/issues/492 th][https://github.com/parnikkapore/plover_thsteno plover-thsteno]is discussion about Russian steno. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Melani''' | |Russian |Phonetic |} === Thai Steno === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500"> A work-in-progress Thai steno system. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Thai Steno''' |Parnikkapore |Thai |Phonetic |[https://github.com/parnikkapore/plover_thsteno <code>plover-thsteno</code>] |} === Jade's Dutch System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500"> Dutch steno system that uses a modified version of the English stenotype layout with one extra <code>G</code> key on the left. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Jade's Dutch System''' |[https://github.com/Jade-GG Jade Geels] |Dutch |Phonetic |[https://github.com/Jade-GG/Plover_Dutch <code>plover-dutch</code>] |3.4k entries |} === Willem's Dutch System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500"> Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Willem's Dutch System''' |[https://github.com/Willem3141 Willem Sonke] |Dutch |Phonetic |<code>[https://github.com/Willem3141/plover_dutch plover-dutch]</code> |7.7k entries |} == Grandjean == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500"> The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts). {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Grandjean''' | |French |Phonetic |[https://github.com/stenomax/plover_grandjean <code>plover-grandjean</code>] |[https://github.com/azizyemloul/plover-france-dict 690k+ entries] |[https://github.com/azizyemloul/plover-france-dict GitHub] |- |🔴 '''Grandjean''' | |Spanish |Phonetic | | |[http://www.estenotipiaasociacion.com/ Asociacion Española de Estenotipistas] |} == Michela == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500"> A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent. {| class="wikitable" |+ ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Michela''' |Sillabix |Italian |Phonetic |[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano 103k entries] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano Manual] |- |🟡 '''Michela''' |Sillabix |English |Phonetic |[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json 150 entries] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction) Manual] |- |🟡 '''Midi4Text''' |Sillabix |Italian |Orthographic |[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>] |[http://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json 95k entries] |[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA) Manual] |- |🟡 '''Midi4Text''' |Sillabix |English |Orthographic |[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>] |[https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.8).json 159k entries] |[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG) Manual] |} == Possum Palantype == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500"> The [http://www.openstenoproject.org/palantype Possum Palantype] is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some [[wikipedia:Speech-to-text_reporter|STTRs]] worldwide for writing in English. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Palantype''' | |English |Phonetic |[https://github.com/morinted/plover_palantype <code>plover-palantype</code>] |21k entries |[http://www.openstenoproject.org/palantype/ Learn Palantype] |- |🔴 '''Swedish Palantype''' | |Swedish |Phonetic |<code>[https://github.com/stenoshrink/plover_swedish_palantype plover-swedish-palantype]</code> |87k entries |[https://github.com/stenoshrink/plover_swedish_palantype/tree/master/Swedish%20theory Swedish Theory] |} === Plover German Palantype === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500"> German steno system based on the Possum Palantype layout with two additional keys. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''German Palantype''' | |German |Phonetic |[https://github.com/percidae/plover_palantype_german <code>plover-palantype-german</code>] |85k entries |} === Ruben Moor's German Palantype === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''German Palantype''' |Ruben Moor |German |Phonetic | |100k entries, with plans to expand to 2 million |[https://palantype.com/ Tutorial] |} == Trillo == === Trillo Russian === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500"> A realtime theory for Russian writing based on the Tréal machine. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Trillo Russian''' |Priscilla Trillo |Russian |Phonetic |[https://github.com/morinted/plover_russian_trillo <code>plover-russian-trillo</code>] |15k entries |[https://github.com/openstenoproject/plover/files/1533593/Russian.Theory.-.ARA.doc.zip Textbook] (in mixed English/Russian) |} === Trillo West Slavic === <img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Trillo West Slavic''' |Priscilla Trillo |Czech, Slovak, Polish |Phonetic | | |[https://github.com/Plover-Trillo/WestSlavicStenography/releases/tag/%23SlavicLanguages Textbook] |} == Yawei == === Yawei === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500"> Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Yawei''' (亚伟) | |Mandarin (Traditional / Simplified) |Symmetric Toneless Pinyin | | |[https://zh.wikipedia.org/wiki/%E4%BA%9A%E4%BC%9F%E9%80%9F%E5%BD%95 Wikipedia] |} === MaaJik === <img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''MaaJik''' (孖翼) |[https://github.com/sammdot Sammi de Guzman], [https://github.com/vatnid Samuel Lo] |Cantonese (Traditional) |Symmetric Toneless Jyutping |[https://github.com/sammdot/plover-maajik <code>plover-maajik</code>] |[https://github.com/sammdot/plover-maajik/tree/main/maajik/dictionaries 314k entries] |} === SanSan === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''SanSan''' (珊々) |[https://github.com/sammdot Sammi de Guzman] |Cantonese (Traditional) |Symmetric Toneless Jyutping | | |[https://steno.sammdot.ca/explainers Steno Explainers] |} === TCIM === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''TCIM''' (千鳥詞注) |[https://github.com/Quisette Quisette C] |Mandarin (Traditional) |Symmetric Toneless Zhuyin |[https://github.com/Quisette/plover-TCIM <code>plover-tcim</code>] |} == EXun == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500"> EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''EXun''' (E 讯) | |Mandarin (Simplified) |Symmetric Toneless Pinyin |} == Suoheng == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500"> Very little is known about the Suoheng system and there are no plans to implement it in Plover. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Suoheng''' (索恒) | |Mandarin (Simplified) |Symmetric Toneless Pinyin |} == Korean CAS == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500"> The Computer Aided Steno-machine, or CAS, was developed by [http://www.koreasteno.com/ Korea Steno] and features one of the two modern stenography systems for Korean in use today. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''CAS''' | |Korean |Orthographic (Initial/Medial/Final) with Briefs |[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern C") | |[https://github.com/nsmarkop/plover_korean/tree/master/plover_korean/system/cas Theory documentation] |} == Korean Sorizava == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500"> Sorizava, developed by a [http://www.sorizava.co.kr/ company of the same name], is the second of the modern stenography systems for Korean in use today and the more recent to have been created. The Sorizava system is not currently under development. There are partial pieces of an implementation in <code>[https://github.com/nsmarkop/plover_korean plover-korean]</code> but outside of a partial dictionary no theory materials have been obtained to progress further. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Sorizava''' | |Korean |Orthographic (Initial/Medial/Final) with Briefs |[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern S") | | |} == Sokutaipu == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500"> Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Sokutaipu''' (ソクタイプ) | |Japanese |Semi-Symmetric 2 Mora + 1 Coda Pure Kana |[https://github.com/na4zagin3/plover_japanese_sokutaipu <code>plover-japanese-sokutaipu</code>] |365k entries |[http://hoangmoc123.d.dooo.jp/sokutaipu.html Kana table] |} == StenoWord == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500"> The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''StenoWord''' (ステノワード) | |Japanese |Orthographic 1-Syllable Pure Kana |<code>plover-japanese-stenoword</code> |2.6k entries |[http://hoangmoc123.d.dooo.jp/Stenoword.html Kana table] |} == Frag's Japanese System == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Frag's Japanese System''' |Frag |Japanese |Symmetric 2 Mora + 2 Coda Stucture-based kanji conversion |} A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke. This is the updated version of the Japanese layout available on TypeyType. == Hachidori == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500"> Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Hachidori''' (はちどり) |[https://github.com/Kaoffie Kaoffie] |Japanese |Symmetric 2 Mora + 2 Coda |} == Velotype == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500"> The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in [https://github.com/kqr/qweyboard Qweyboard] by kqr. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Velotype''' | |English, Dutch |Orthographic |[https://github.com/AlexandraAlter/plover_syllabic_chording <code>plover-syllabic-chording</code>] | |[https://www.velotype.com/en/homepage-eng/ Official website] |} == Jackdaw == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500"> An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Jackdaw''' | |English |Orthographic |<code>[https://github.com/user202729/plover-jackdaw-alt1 plover-jackdaw-alt1]</code> | |[https://www.openstenoproject.org/learn-plover/jackdaw.html Learn Plover! Jackdaw tutorial] |} == Kinglet == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500"> Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Kinglet''' |Zachary Brown |English |Orthographic |[https://drive.google.com/file/d/0B9Je8TDYCh1xSVRjVmQ0RUF0ejA/edit?resourcekey=0-6XylRvd298I4w4OVUc-IDg Plover 2.5.8 modified for Kinglet] | |[https://www.openstenoproject.org/learn-plover/kinglet-a-letter-based-stenotype-system.html Learn Plover! Kinglet tutorial] |} == Phenrsteno == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500"> Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Phenrsteno''' |[https://github.com/chambln Gregory Chamberlain] |English |Phonetic |[https://github.com/chambln/plover-phenrsteno <code>plover-phenrsteno</code>] |15k entries |[https://github.com/chambln/plover-phenrsteno/wiki Phenrsteno wiki] |} == Plover Czech == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Plover Czech''' |[https://github.com/lambdadog Ashlynn Anderson] |Czech |Phonetic |[https://github.com/lambdadog/plover_czech <code>plover-czech</code>] |} == Especias == === Finnish Especias === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500"> An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Especias''' |[https://github.com/SeaLiteral Lars Rune Præstmark] |Finnish |Orthographic |Built-in |[https://github.com/SeaLiteral/especias Dictionary] |} === Spanish Especias === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500"> A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Especias''' |[https://github.com/SeaLiteral Lars Rune Præstmark] |Spanish |Orthographic |Built-in |[https://github.com/SeaLiteral/especias Dictionary] |} [[Category:Stenography]] 376dd25e7cc667faef15d7702aab4efcffbe0b48 List of available steno dictionaries 0 20 154 92 2024-02-11T18:23:56Z Rice 1 Convert to mw wikitext text/x-wiki Plover comes with a free 140,000 word steno dictionary. You can add other dictionaries to Plover, for foreign languages, specialist terminologies, special projects etc. In addition to creating your own personal dictionaries, you can download free, open source steno dictionaries that have been developed by others. You'll find links to many of these below. == Stenodict == You'll find many free, open source steno dictionaries at the [https://www.openstenoproject.org/stenodict/ Stenodict] website. {| class="wikitable" !Purpose !Author !Description |- |Arrows |Ted Morin |Symbolic arrows → → made easy |- |Cross Platform Movement |Ted Morin |Movement and selection across Mac, Windows, and Linux |- |Di’s Mac Movement |Diana MacDonald |Extensive Mac movement and selection |- |Di’s Vim Commands |Diana MacDonald |Vim and steno were made for each other |- |Emoji |Ted Morin |Complete Emoji dictionary 😃 |- |General Command Line |Diana MacDonald |Briefs and entries for terminal users |- |Left Hand Modifier Keys |Achim Siebert |Left-hand keyboard shortcuts in only two strokes |- |Left-side Mac Movement |Achim Siebert |Left movement shortcuts with selection for Mac |- |Markdown |Ted Morin |Best markup language meets best text entry system |- |Pokémon |Ted Morin |First 151 Pokémon written with Plover theory |- |Spectacle |Ted Morin |Window management with Spectacle, the free application for OS X |- |UK Spellings |Ted Morin |Replace US spellings in Plover's default dictionary |- |Unspaced Punctuation |Diana MacDonald |Punctuation with all the spaces suppressed |- |Vim Captioning |Mirabai Knight |Useful realtime captioning commands for Vim |} == Stanley Sakai's Steno dictionaries == Stanley Sakai's repository on GitHub - [https://github.com/stanographer/steno-dictionaries Stanley's Steno Dictionaries] {| class="wikitable" !Language !Description |- |braille.json |A starter dictionary for steno-based Braille input. |- |smalldict.json |Starter dictionary Mirabai gave Stan as a template (not actively updated or used). |- |stan-italiano.json |Dictionary started when doing an Italian class. Not very developed. |- |stanespanol.json |Main Spanish steno dictionary. |- |stanmain.json |His main English dictionary. |- |stanplover.json |Additional entries to correct formatting errors caused by RTF -> JSON conversion. |} == Diana MacDonald's repository == [https://github.com/dimonster/plover-dictionaries Diana MacDonald's dictionaries]. These include symbols, currency, smart punctuation, design, and coding dictionaries. == Other dictionaries == * [https://github.com/EPLHREU/emily-symbols Emily's Symbol Dictionary] and [https://github.com/EPLHREU/emily-modifiers Emily's Modifier Dictionary]. The first allows you to type over 100 symbols with adjustable spacing and capitalization, the second allows you to input arbitrary keyboard shortcuts. * [https://github.com/Jade-GG/plover_phrasing/ Jade's Phrasing Dictionary], a python dictionary phrasing system that lets you write entire phrases such as "we don't really want to" in one stroke. * [https://github.com/JorWat25/dictionaries/blob/main/british%20words.json JorWat's British Words], a dictionary of words and phrases found on the Wikipedia page, "Glossary of British terms not widely used in the United States". == Dictionaries for non-English languages == {| class="wikitable" !Language !Author |- |[https://github.com/stanographer/steno-dictionaries/blob/master/stan-italiano.json Italian] |Stanley Sakai |- |[https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json Spanish] |Stanley Sakai |- |[https://github.com/azizyemloul/plover-france-dict French] |Aziz Yemloul |- |[https://github.com/winstond/hind_plover_dictionary Hindi हिन्दी] |winston |} <blockquote>Note: The above foreign language dictionaries are designed to be used with the English steno keyboard layout, but it is possible to customize the steno layout. For dedicated foreign language steno layouts, see the [[Steno Layouts and Supported Languages|steno layouts & supported languages page]].</blockquote> == Commercial stenography dictionaries == Plover can also work with exported dictionaries from commercial stenography applications such as Eclipse, ProCAT and Case CATalyst. See [[Dictionary Format]] page for more information. [[Category:Stenography]] d208cd6c80f9f5ecdefcd19a3a38364cd1169c5f The steno community 0 21 156 66 2024-02-12T16:03:31Z Rice 1 wikitext text/x-wiki There are many places where you can meet the stenography community. As Plover, we are focused on the Open Steno Project's various outlets, but there are also classic closed steno resources online. == Open Steno Project == * [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server] Join the Discord server to chat with other steno-interested individuals. We welcome new people who may have very basic questions, looking for direction and help. We also welcome curious developers, stenography students, intermediate stenos, and professionals who are curious about Plover and its many uses compared with traditional software. Feel free also to drop by if you are looking to practice or find a new brief. * [https://www.facebook.com/groups/486062194804842/ Ploversteno Facebook Group] * [https://groups.google.com/forum/#!forum/ploversteno Ploversteno Google Group] The Plover Google Group. Subscribe for updates and conversation. * [https://github.com/openstenoproject/plover/discussions GitHub Discussions] * Reddit: [http://reddit.com/r/plover Unofficial Plover Subreddit: /r/Plover] == General Stenography == * Facebook: [https://www.facebook.com/groups/ECRSgroup/ Encouraging Court Reporting Students] * Twitter: There isn't much steno activity on Twitter, but maybe this list and this hashtag will help you get started. ** [https://twitter.com/morinted/lists/steno Steno List] ** [https://twitter.com/hashtag/stenolife?src=hash #stenolife] 65a3ea260e52c23d684286e06ae19cf1cff199d5 Learning stenography 0 17 157 155 2024-02-12T19:33:10Z Rice 1 /* Plugins */ wikitext text/x-wiki == Suggested Learning Route == <blockquote>⚠️ This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.</blockquote> {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''Start reading a [[Learning Stenography#Textbooks|textbook]].''' [https://www.artofchording.com/ The Art of Chording] seems to be more popular, but [https://www.openstenoproject.org/learn-plover/ Learn Plover!] is more complete (covering punctuation and numbers as well). '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Textbooks == These sites aim to teach you steno theory, from the layout to the terminology to the strokes. * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. However, do note that this theory is not default in the Plover app. Although based off of Plover theory, Lapwing offers more consistency and relies less heavily on memorization. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out [[Plugins]] for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allow you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY] *** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] 276ec9d628fccf69318add7d794dd85495ced71c File:Image.png 6 34 158 2024-02-12T19:35:49Z Rice 1 wikitext text/x-wiki plover-plugins-manager 2e72e954002f7ea92553d732347d95b1ed1bf98d File:Plover-dict-commands.png 6 35 159 2024-02-12T19:38:22Z Rice 1 wikitext text/x-wiki shows plover-dict-commands in the plover-plugins-manager window 052b4ea1e3f48da968f357bbd9fb509d4ab03165 File:Plugins-security-risk.png 6 36 160 2024-02-12T19:39:54Z Rice 1 wikitext text/x-wiki warning when installing plugins 353f5d35300d7f4dc3e91513be2dbfeeaae460b7 File:Plover dict commands-repo.png 6 37 161 2024-02-12T19:42:37Z Rice 1 wikitext text/x-wiki plover_dict_commands repo on github bb1e3998e40ba0fc60a16ba5537386940d5b8b59 File:Dialog after install plugin.png 6 38 162 2024-02-12T19:44:16Z Rice 1 wikitext text/x-wiki dialog after install plugin b8a7effad03a28e5cbb4c6c25c977848727c8fc2 File:Restart button after install plugin.png 6 39 163 2024-02-12T19:44:59Z Rice 1 wikitext text/x-wiki Restart button after install plugin 08808c36b033092102472031045d95a9ebb23799 File:Configure-location.png 6 40 164 2024-02-12T19:47:13Z Rice 1 wikitext text/x-wiki configure-location 0469ad22ee68f016b3c0f8641c77117cb396f204 File:Configure-plugins-menu.png 6 41 165 2024-02-12T19:49:01Z Rice 1 wikitext text/x-wiki configure-plugins-menu 49b1b78d445595e0b0e875ecdab224e23fe43463 File:Add translation GUI plover.png 6 42 166 2024-02-12T19:50:26Z Rice 1 wikitext text/x-wiki add translation GUI plover 3a05c65cab4d2a1a04a735f04e738e2bcd348004 File:Enabled dictionaries in GUI.png 6 43 167 2024-02-12T19:52:43Z Rice 1 wikitext text/x-wiki enabled dictionaries in GUI a7967088d29dc7020f8b1a68cbdb65e31d21b510 File:Plover GUI list of dictionaries after toggling di-briefs off.png 6 44 168 2024-02-12T19:54:33Z Rice 1 wikitext text/x-wiki plover GUI list of dictionaries after toggling di-briefs off 582f012985537b07f7433e1e6b8e58238a6fcb44 Plugins 0 45 169 2024-02-12T20:03:21Z Rice 1 Add plugins page wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. == An example of installing a plugin == The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] ----'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. c01cbc7d425df5d8d28d0728a765a32f9d54366e 173 169 2024-02-12T20:14:56Z Rice 1 wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == ==== Via the built-in Plugins Manager (recommended) ==== * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] ==== Manually Installing Plugins ==== Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ===== Find the plugin on PyPI or as a git repo ===== ====== Plugins on PyPI ====== There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below: If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>) ====== Plugins not on PyPI ====== If the plugin is not listed on PyPI do the following steps: # Take note of the URL to the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> # Install git #* You may need to restart after installing git # Open a command-line window (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to manually add <code>git</code> to your path (search for guides along the lines of "how to add git to path windows/mac"). ===== Install the plugin ===== See [[Invoke Plover from the Command Line]] to access the Plover executable. If the plugin is on PyPI, run the command (replacing <code>plugin-name</code> with the actual plugin name): <code>plover -s plover_plugins install plugin-name</code> If the plugin is only available in a git repo (replacing <code><nowiki>https://github.com/user/plugin</nowiki></code> with the actual URL): <code>plover -s plover_plugins install git+<nowiki>https://github.com/user/plugin</nowiki></code> ----'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. cdd1d8ceaea819bda4a3788288a18c1d0713cfae 174 173 2024-02-12T20:16:51Z Rice 1 fix indentation wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == ==== Via the built-in Plugins Manager (recommended) ==== * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] ==== Manually Installing Plugins ==== Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ===== Find the plugin on PyPI or as a git repo ===== ====== Plugins on PyPI ====== There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below: If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>) ====== Plugins not on PyPI ====== If the plugin is not listed on PyPI do the following steps: # Take note of the URL to the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> # Install git #* You may need to restart after installing git # Open a command-line window (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to manually add <code>git</code> to your path (search for guides along the lines of "how to add git to path windows/mac"). ===== Install the plugin ===== See [[Invoke Plover from the Command Line]] to access the Plover executable. If the plugin is on PyPI, run the command (replacing <code>plugin-name</code> with the actual plugin name): <code>plover -s plover_plugins install plugin-name</code> If the plugin is only available in a git repo (replacing <code><nowiki>https://github.com/user/plugin</nowiki></code> with the actual URL): <code>plover -s plover_plugins install git+<nowiki>https://github.com/user/plugin</nowiki></code> ----'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. 216eef4e1b9e21fae962e4b3c56f6e344c246745 183 174 2024-02-12T20:43:23Z Rice 1 wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == ==== Via the built-in Plugins Manager (recommended) ==== * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] ==== Manually Installing Plugins ==== Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ===== Find the plugin on PyPI or as a git repo ===== ====== Plugins on PyPI ====== There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below: If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>) ====== Plugins not on PyPI ====== If the plugin is not listed on PyPI do the following steps: # Take note of the URL to the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> # Install git #* You may need to restart after installing git # Open a command-line window (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to manually add <code>git</code> to your path (search for guides along the lines of "how to add git to path windows/mac"). ===== Install the plugin ===== See [[Invoke Plover from the Command Line]] to access the Plover executable. If the plugin is on PyPI, run the command (replacing <code>plugin-name</code> with the actual plugin name): <code>plover -s plover_plugins install plugin-name</code> If the plugin is only available in a git repo (replacing <code><nowiki>https://github.com/user/plugin</nowiki></code> with the actual URL): <code>plover -s plover_plugins install git+<nowiki>https://github.com/user/plugin</nowiki></code> ----'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] fdce3e8e1e4f9330d0510b129c75ef7af55860a4 184 183 2024-02-12T20:47:40Z Rice 1 change heading types in installation instructions wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below: If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>) ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI do the following steps: # Take note of the URL to the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> # Install git #* You may need to restart after installing git # Open a command-line window (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to manually add <code>git</code> to your path (search for guides along the lines of "how to add git to path windows/mac"). ==== Install the plugin ==== See [[Invoke Plover from the Command Line]] to access the Plover executable. If the plugin is on PyPI, run the command (replacing <code>plugin-name</code> with the actual plugin name): <code>plover -s plover_plugins install plugin-name</code> If the plugin is only available in a git repo (replacing <code><nowiki>https://github.com/user/plugin</nowiki></code> with the actual URL): <code>plover -s plover_plugins install git+<nowiki>https://github.com/user/plugin</nowiki></code> ----'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 3f3f54f16a4fc5de45bdaecaba333d30058144b4 185 184 2024-02-12T21:06:50Z Rice 1 fix image indent wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below: If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>) ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI do the following steps: # Take note of the URL to the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> # Install git #* You may need to restart after installing git # Open a command-line window (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to manually add <code>git</code> to your path (search for guides along the lines of "how to add git to path windows/mac"). ==== Install the plugin ==== See [[Invoke Plover from the Command Line]] to access the Plover executable. If the plugin is on PyPI, run the command (replacing <code>plugin-name</code> with the actual plugin name): <code>plover -s plover_plugins install plugin-name</code> If the plugin is only available in a git repo (replacing <code><nowiki>https://github.com/user/plugin</nowiki></code> with the actual URL): <code>plover -s plover_plugins install git+<nowiki>https://github.com/user/plugin</nowiki></code> ----'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 7fe2a1a67285bb4057da6ab783e3ffc7a3f65982 MediaWiki:Sidebar 8 5 170 75 2024-02-12T20:04:25Z Rice 1 wikitext text/x-wiki * Plover ** mainpage|Main Page ** https://www.openstenoproject.org/plover|Plover Website (External) ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide ** Supported_Hardware|Supported Hardware ** Dictionary_Format|Dictionary Format ** Built-in_Tools|Built-in Tools ** Plugins|Plugins ** Open_Steno_Project_Timeline|Open Steno Project Timeline ** Troubleshooting_Issues|Troubleshooting Issues * Stenography ** FAQ|FAQ ** Glossary|Glossary ** Learning_Stenography|Learning Stenography ** Brief_Ideas|Brief Ideas ** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages ** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries * Miscellaneous ** The_Steno_Community|The Steno Community ** https://www.openstenoproject.org/demo/|In-Browser Demo ** Other_Pages|Other Pages * MediaWiki ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 9553f30ca6815bd58f52da5b57baef5634406569 200 170 2024-02-12T21:36:17Z Rice 1 wikitext text/x-wiki * Plover ** mainpage|Main Page ** https://www.openstenoproject.org/plover|Plover Website (External) ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide ** Configuration|Configuration ** Supported_Hardware|Supported Hardware ** Dictionary_Format|Dictionary Format ** Built-in_Tools|Built-in Tools ** Plugins|Plugins ** Open_Steno_Project_Timeline|Open Steno Project Timeline ** Troubleshooting_Issues|Troubleshooting Issues * Stenography ** FAQ|FAQ ** Glossary|Glossary ** Learning_Stenography|Learning Stenography ** Brief_Ideas|Brief Ideas ** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages ** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries * Miscellaneous ** The_Steno_Community|The Steno Community ** https://www.openstenoproject.org/demo/|In-Browser Demo ** Other_Pages|Other Pages * MediaWiki ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 8a11a038f8418b2d9286d316a9f4b748430d0184 203 200 2024-02-12T21:40:48Z Rice 1 wikitext text/x-wiki * Plover ** mainpage|Main Page ** https://www.openstenoproject.org/plover|Plover Website (External) ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide ** Configuration|Configuration ** Supported_Hardware|Supported Hardware ** Dictionary_Format|Dictionary Format ** Built-in_Tools|Built-in Tools ** Plugins|Plugins ** Command Line|Command Line ** Open_Steno_Project_Timeline|Open Steno Project Timeline ** Troubleshooting_Issues|Troubleshooting Issues * Stenography ** FAQ|FAQ ** Glossary|Glossary ** Learning_Stenography|Learning Stenography ** Brief_Ideas|Brief Ideas ** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages ** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries * Miscellaneous ** The_Steno_Community|The Steno Community ** https://www.openstenoproject.org/demo/|In-Browser Demo ** Other_Pages|Other Pages * MediaWiki ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 0a0dae1901ff2cbe3d2d2c7c5d64b13100c47fcb 204 203 2024-02-12T21:41:12Z Rice 1 wikitext text/x-wiki * Plover ** mainpage|Main Page ** https://www.openstenoproject.org/plover|Plover Website (External) ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide ** Configuration|Configuration ** Supported_Hardware|Supported Hardware ** Dictionary_Format|Dictionary Format ** Built-in_Tools|Built-in Tools ** Plugins|Plugins ** Invoke_Plover_from_the_Command_Line|Command Line ** Open_Steno_Project_Timeline|Open Steno Project Timeline ** Troubleshooting_Issues|Troubleshooting Issues * Stenography ** FAQ|FAQ ** Glossary|Glossary ** Learning_Stenography|Learning Stenography ** Brief_Ideas|Brief Ideas ** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages ** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries * Miscellaneous ** The_Steno_Community|The Steno Community ** https://www.openstenoproject.org/demo/|In-Browser Demo ** Other_Pages|Other Pages * MediaWiki ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES bf00a6d1be0925143dbe31eccc2ef3a813017dbb File:Command prompt example for git output.png 6 46 171 2024-02-12T20:11:46Z Rice 1 wikitext text/x-wiki command prompt example for git output bb929256a464eac7e71d2579ccf579a4915d1851 File:Cmd-git-output.gif 6 47 172 2024-02-12T20:13:14Z Rice 1 wikitext text/x-wiki Cmd-git-output 7019e3f300e3ad3480e422c0a9e8cdd5ee2b6c99 Plover HID 0 48 175 2024-02-12T20:17:54Z Lynn 10 create article wikitext text/x-wiki The '''Plover HID''' protocol is an alternative protocol for steno keyboards to communicate with steno software, using the common HID (Human Interface Device) standard for mice, keyboards, game controllers, et cetera. It is implemented by the [https://github.com/dnaq/plover-machine-hid plover-machine-hid Plover plugin]. Notably, it sends packets for each key-up or key-down event, unlike the [[Gemini PR]] or [[TX Bolt]] protocols which only send a packet after a chord is completely released. This allows the plugin to support features such as [[first-up chord send]] or [[auto-repeat]]. == Using Plover HID == If your steno board supports [[Javelin]], you can use the [https://lim.au/#/software/javelin-steno firmware builder] to get a version of the Javelin firmware that outputs Plover HID: # At the top of the page, enable '''Show expert options'''. # Under '''Keymap''', click the '''Edit''' button next to "Script: OK, xxx bytes" # Find the line that says <code>console("set_steno_mode <b>gemini</b>");</code> # Replace it with <code>console("set_steno_mode <b>plover_hid</b>");</code> Now the four corner keys on your board switch between embedded steno and Plover HID output. To install the [https://github.com/dnaq/plover-machine-hid plover-machine-hid plugin], see [[Installing plugins]]. Then select "Plover HID" under "Machine" in Plover. == Specification == Devices using the Plover HID protocol can be recognized by <code>usagePage = 0xFF50</code> and <code>usage = 0x4C56</code>. They send input reports with report ID 80 (<code>0x50</code>) followed by an 8-byte body. The body is a 64-bit bitmask representing the state of the standard English steno keys <code>S- T- K- P- W- H- R- A- O- * -E -U -F -R -P -B -L -G -T -S -D -Z #</code>, followed by extra keys <code>X1</code> through <code>X26</code>. For example, when <code>S-</code> is pressed down, the device reports <code>80 00 00 00 00 00 00 00</code> (in hexadecimal). Then when <code>T-</code> is additionally pressed it reports <code>c0 00 00 00 00 00 00 00</code>. == See also == * [https://github.com/dnaq/plover-machine-hid/blob/main/README.md The specification in the plover-machine-hid README] * [https://lim.au/#/software/plover-hid Plover HID Inspector], for debugging. * [https://foldr.moe/plover-hid-display Plover HID Display], a web-based live keyboard display tool. 8443ec4cf0473be18b394ea80181602ba5bffba3 Invoke Plover from the command line 0 49 176 2024-02-12T20:19:32Z Rice 1 Created page with "Sometimes (for instance, to manually install plugins) you're required to run a command from the command-line. The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.) In the example below, assume that the following command should be executed: <code>plover -s plover_plugins install plover-stenograph-usb</code> To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</cod..." wikitext text/x-wiki Sometimes (for instance, to manually install plugins) you're required to run a command from the command-line. The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.) In the example below, assume that the following command should be executed: <code>plover -s plover_plugins install plover-stenograph-usb</code> To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly. See also Command Line Reference - Plover 4.0.0-dev10<sup>[external link]</sup> for other commands that can be executed. == Windows == # Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location" # You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here." # Type in the following command: # Press Enter to run the command. == Mac == # Open the Terminal app # Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter: /Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb 9507f2717b30ee4ce362e55495b14082bc2db7d9 181 176 2024-02-12T20:26:57Z Rice 1 wikitext text/x-wiki Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line. The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.) In the example below, assume that the following command should be executed: <code>plover -s plover_plugins install plover-stenograph-usb</code> To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly. See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference]<sup>[external link]</sup> for other commands that can be executed. == Windows == # Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location" [[File:Windows plover shortcut right click menu.png|frameless|623x623px]] # You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here." [[File:Shift right click menu on plover console.png|frameless|617x617px]] # Type in the following command: .\plover_console.exe -s plover_plugins install plover-stenograph-usb [[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]] # # Press Enter to run the command. [[File:Install plugin output in powershell.png|frameless|675x675px]] == Mac == # Open the Terminal app # Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter: /Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb == Linux (AppImage) == # Execute the command in the command-line: plover.AppImage -s plover_plugins install plover-stenograph-usb 7c6318add783b818f2ec1bcab8832aed1c163357 File:Windows plover shortcut right click menu.png 6 50 177 2024-02-12T20:22:56Z Rice 1 wikitext text/x-wiki windows plover shortcut right click menu ee7988de480a65582b45814c9b02734db345eed0 File:Shift right click menu on plover console.png 6 51 178 2024-02-12T20:23:47Z Rice 1 wikitext text/x-wiki shift right click menu on plover_console 113f654a0750d4b8dd5f20377f8791100e0d1a88 File:Showing full path of command in powershell.png 6 52 179 2024-02-12T20:25:18Z Rice 1 wikitext text/x-wiki showing full path of command in powershell 6c807ab2f5ca61e358c9b700a090e9a47efdf34b File:Install plugin output in powershell.png 6 53 180 2024-02-12T20:26:42Z Rice 1 wikitext text/x-wiki install plugin output in powershell 55fdf0ce33abfb46fc63bfc4a82f07c81307e5e4 Misleading Strokes in Plover's Dictionary 0 32 186 143 2024-02-12T21:14:53Z Rice 1 convert to media wiki format wikitext text/x-wiki The theory used in Plover's dictionary applies some best practices for stroking certain words. There are some misstroke entries in the Plover dictionary that are very nice (and short), but may cause issues later on. For example, with [https://plover.wiki/index.php/Glossary#Word_Boundary word boundaries]. <span id="and"></span> === And === The best practice for &quot;and&quot;: * Use <code>SKP</code> ✓ This was chosen arbitrarily, because it is comfortable and there is little chance of a word boundary issue. &quot;and&quot; is a common word ending, so stenographers find it easy to remember to stroke <code>SKP</code>. <code>SKP</code> is also allows the use of phrases like <code>SKPU → and you</code> and <code>SKPEU → and I</code>. There are some other strokes in the dictionary for &quot;and&quot;. However, they are only to serve as a phonetic alternative when you are writing under pressure, and you can't remember <code>SKP</code>. <span id="con--words"></span> === Con- words === In Plover's theory, the best practice for con- words is: * Use <code>KAUPB</code> to start words beginning with con. ✓ * Only use <code>KOPB</code> for the word &quot;con&quot;. However, when you look up a con word in Plover, it will only return misstrokes that contain the <code>KOPB</code> stroke. The reason for this is because the con- prefix doesn't require a dictionary entry. For example, for the word &quot;conquer&quot;: * Use <code>KAUPB/KER</code> ✓ * Do not use <code>KOPB/KER</code> ✘ Other words are not easy to write phonetically because they are to be briefed. For example: <code>T-PB for &quot;continue&quot;</code>. <span id="hyphen--"></span> === Hyphen (-) === The best practice for &quot;-&quot;: * <code>H-PB</code> ✓ Why <code>H-PB</code>? The reason is that <code>H-PB</code> is <code>H-N</code> in pseudo-steno, which short for hyphen. There are a set of misstrokes that use <code>H-B</code> instead. These are OK to use. <span id="was"></span> === Was === The best practice for &quot;was&quot;: * <code>WAS</code> ✓ or * <code>WAZ</code>. ✓ The default dictionary has <code>WA → was</code>, which is most of the time all right. However it can conflict in some cases. For example: <code>WA/TKPWOPB → wagon (not &quot;was gone&quot;)</code> and <code>WA/TPHA/SA → wanna sa (not &quot;was NASA&quot;)</code>. <span id="your"></span> === Your === The best practice for &quot;your&quot;: * Use<code>KWROUR</code> ✓ * Do not use <code>KWRUR</code> ✘ This is because <code>KWRUR</code> is a word ending. For example: <code>KHROES/KWRUR → closure</code> versus <code>KHROES/KWROUR → close your</code>. <span id="period-"></span> === Period (.) === The best practice for &quot;.&quot;: * <code>TP-PL</code> ✓ or * <code>-FPLT</code> ✓ The other strokes <code>-P</code> and <code>-PL</code> can be used, but there will be conflicts. For example, <code>WEUPL/-P</code> is &quot;wimp&quot; rather than &quot;women.&quot; Similarly, <code>HEL</code> is &quot;hell&quot; but <code>HEL/PL</code> is &quot;helm&quot;. 6d07210d842af33eec447e171f75a631fca77eef Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard 0 55 187 2024-02-12T21:19:04Z Rice 1 Created page with "Performed on a LionCast Gaming Keyboard LK10 <span id="equipment"></span> == Equipment == (Most is optional) * Plover * Keyboard * Bowls or plastic baggies * Something to remove [https://en.m.wikipedia.org/wiki/Keycap keycaps] from the keyboard (pulling tool that came with the keyboard or you [https://www.thingiverse.com/thing:1318655 3D-][https://www.thingiverse.com/thing:463824 prin][https://www.thingiverse.com/thing:1326329 ted], paperclip bent into hooks, adhesive..." wikitext text/x-wiki Performed on a LionCast Gaming Keyboard LK10 <span id="equipment"></span> == Equipment == (Most is optional) * Plover * Keyboard * Bowls or plastic baggies * Something to remove [https://en.m.wikipedia.org/wiki/Keycap keycaps] from the keyboard (pulling tool that came with the keyboard or you [https://www.thingiverse.com/thing:1318655 3D-][https://www.thingiverse.com/thing:463824 prin][https://www.thingiverse.com/thing:1326329 ted], paperclip bent into hooks, adhesive tape. There are guides with text, pictures and videos out there. Google &quot;remove keycap [name of your keyboard]&quot;) * Masking tape * Label maker with plastic tape * Blu tack <span id="steps"></span> == Steps == # Take picture of keyboard to know where keys used to be # Use Plover to find out which keys are used, and which ones aren't # Pluck off the keys in the Steno layout: #STKPWHRAO*EUFRPBLGTSDZ - except for F # And yes, there's probably only a single S, T, P on your keyboard. # Put them to the side, in a bowl or baggy # Pluck off semicolon, colon, hyphen, asterisk, or similar # Put those into another bowl # Leave these keys in place: numbers (0-9), F, J, up-arrow, down-arrow. Pluck off the remaining ones, putting them into 3 bowls: letter keys, irregular shapes, and the rest. # I left the up- and down-arrow keys on because they can be used to navigate Plover's paper tape. # F and J are the ones with bumps. # Check if you can use a non-bumpy key in place of F and J # If you can: put F into the steno layout bowl, and J in the letter key bowl. If not: leave both in their places # Pluck out 6, and put the # key there - Reminder that it's the number row, and where the center is. # Put the asterisk in the lower right corner of the group of 4 keys for *, and semikolon and the rest in the other 3. # Test that they're in the correct places using Plover # Put the steno layout keys in their steno layout places # I placed my S, T and P top left # Put keys on the rest. Whichever suit you. I chose C for the other S on the left, for instance. # Use masking tape to tape over the gaps where ESC, F-keys, Home/Insert etc., numpad and arrowkeys were to reduce dust buildup # Start practicing with [http://qwertysteno.com Qwerty-steno], and notice what's least comfortable # For me, those were the bottom 4 keys. Pointy things that dug into my thumbs # See if you can make them more comfortable with Blu Tac 07f5daa88563e27276e7abf8b6d0bfb869237605 Other pages 0 24 188 77 2024-02-12T21:19:32Z Rice 1 wikitext text/x-wiki * [[Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard]] * [[How to setup and use Plover with a Stentura 400SRT]] * [[Open Steno Project Timeline]] * [[Stenotype Mnemonics for Beginners (English)]] 745522371277799d482d6036e04ac27d7066a641 197 188 2024-02-12T21:32:35Z Rice 1 add measuring your writing speed page wikitext text/x-wiki * [[Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard]] * [[How to setup and use Plover with a Stentura 400SRT]] * [[Measuring Your Real World Writing Speed]] * [[Open Steno Project Timeline]] * [[Stenotype Mnemonics for Beginners (English)]] fe444b8e238cb3d2eaa8027fd6f3b56cdaed9197 206 197 2024-02-12T21:44:44Z Rice 1 add main dictionary changes page wikitext text/x-wiki * [[Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard]] * [[How to setup and use Plover with a Stentura 400SRT]] * [[Main Dictionary Changes]] * [[Measuring Your Real World Writing Speed]] * [[Open Steno Project Timeline]] * [[Stenotype Mnemonics for Beginners (English)]] 47a11ad92a4ec3405b371f2b720481e7d7ab45ec Stenotype Mnemonics for Beginners (English) 0 23 189 69 2024-02-12T21:20:35Z Rice 1 wikitext text/x-wiki <span id="learning-steno"></span> == Learning Steno == Sometimes the first steps of learning stenotype is an especially steep learning curve -- much like learning the alphabet and basic sounds of a new language. This page presents some mnemonic devices to help ease this initial learning process. These mnemonics are for use along with a steno tutorial, such as Qwertysteno, LearnPlover, Steno101, etc. These and more are available here: http://stenoknight.com/wiki/Practice <span id="single-stroke-consonants-and-single-stroke-vowels"></span> == Single-stroke consonants and single-stroke vowels == [[File:https://www.dropbox.com/s/yhlwbrtwsozxbpd/steno-keyboard2.png?raw=1|source: qwertysteno.org]] * Verbal mnemonic for consonants in steno order: <br> &quot;STicK PoWer HeRe FoR PuB LoGo: 'ToeS DoZe'&quot; <br> * Verbal mnemonic for single-key vowels <br> &quot;The bAt-bOt bEt her bUtt that she could put cat-boy behind bars...&quot; <span id="compound-stroke-mnemonic-images"></span> == Compound-stroke Mnemonic Images == [[File:https://www.dropbox.com/s/cvzb7c0sv5893jd/024_PloverMnemonicConsonants.png?raw=1]] Download [https://www.dropbox.com/s/cvzb7c0sv5893jd/024_PloverMnemonicConsonants.png?dl=0 hi-res version] [[File:https://www.dropbox.com/s/n5c6j3hozbittvr/005_PloverMnemonicVowels.png?raw=1]] Download [https://www.dropbox.com/s/n5c6j3hozbittvr/005_PloverMnemonicVowels.png?dl=0 hi-res version] <span id="mnemonic-image-keys--"></span> == Mnemonic Image Keys: <br> == * Consonants: '''sh'''oe '''z'''ebra '''v'''ote '''j'''avelin '''n'''ose '''th'''ought '''f'''eather '''d'''ucky '''g'''ift '''y'''ellowbrickroad '''ch'''op '''m'''achinegun '''b'''ubble '''l'''ion '''p'''ump too'''th''' yo'''lk''' li'''nk''' pat'''ch''' cur'''v'''e cru'''nch''' / '''-lch''' ca'''sh''' paw'''n''' ko'''ng''' pu'''mp''' ha'''m''' ba'''dge''' ('''j''') soc'''k''' reda'''ction''' ('''kshun''') bu'''lge''' ('''lj''') lo'''tion''' ('''shun''') * Vowels: <br> moon - AO - identifies homophones spelled &quot;oo&quot; or &quot;oa&quot; <br> mitt - EU<br> ape-baby - AEU <br> rowing-boat - OE <br> pea - AE - identifies homophones spelled &quot;ea&quot; or &quot;ae&quot; <br> wheel - AOE <br> oil - OEU - often &quot;wildcard&quot; for making funky briefs <br> saw - AU <br> soup - AOU <br> pow - OU <br> eye - AOEU <br> <span id="notes"></span> == Notes: == * Please feel welcome to update this wiki page's structure to include additional mnemonic models if desired * Layered &quot;xcf&quot; image files editable in [https://www.gimp.org/ GIMP] are available [https://www.dropbox.com/sh/h1ytoo3kydwi8hn/AABXtMzt2gH3TZlhCrTbjeB_a?dl=0 here] if you want to put in some of your own mnemonics. * The best mnemonics are always the ones you make up yourself. So feel encouraged to make your own mnemonic sketches, or modify the xcf file with your favorite sound/image associations. * Info about mnemonic methods: [http://artofmemory.com/ ArtOfMemory] , [https://www.ted.com/talks/joshua_foer_feats_of_memory_anyone_can_do?language=en JoshFoerTEDTalk], [https://en.wikipedia.org/wiki/World_Memory_Championships WorldMemoryChampionships] , * For I guess some of the source images included in the mnemonic montages are under education etc, &quot;[https://en.wikipedia.org/wiki/Fair_use fair use]&quot;. But other than that, feel free to use and abuse. Public domain for any of my contributions! :) 48b39880a57048a8a81749c911fbfd4c593e0c9b 193 189 2024-02-12T21:26:32Z Rice 1 convert to mw format wikitext text/x-wiki <span id="learning-steno"></span> == Learning Steno == Sometimes the first steps of learning stenotype is an especially steep learning curve -- much like learning the alphabet and basic sounds of a new language. This page presents some mnemonic devices to help ease this initial learning process. These mnemonics are for use along with a steno tutorial, such as Qwertysteno, LearnPlover, Steno101, etc. These and more are available here: http://stenoknight.com/wiki/Practice <span id="single-stroke-consonants-and-single-stroke-vowels"></span> == Single-stroke consonants and single-stroke vowels == [[File:Ireland steno layout.png|frameless|417x417px]] * Verbal mnemonic for consonants in steno order: <br> &quot;STicK PoWer HeRe FoR PuB LoGo: 'ToeS DoZe'&quot; <br> * Verbal mnemonic for single-key vowels <br> &quot;The bAt-bOt bEt her bUtt that she could put cat-boy behind bars...&quot; <span id="compound-stroke-mnemonic-images"></span> == Compound-stroke Mnemonic Images == [[File:Compound stroke mnemonic 1.png|frameless|800x800px]] Download [https://www.dropbox.com/s/cvzb7c0sv5893jd/024_PloverMnemonicConsonants.png?dl=0 hi-res version] [[File:Compound stroke mnemonic 2.jpg|frameless|829x829px]] Download [https://www.dropbox.com/s/n5c6j3hozbittvr/005_PloverMnemonicVowels.png?dl=0 hi-res version] <span id="mnemonic-image-keys--"></span> == Mnemonic Image Keys: <br> == * Consonants: '''sh'''oe '''z'''ebra '''v'''ote '''j'''avelin '''n'''ose '''th'''ought '''f'''eather '''d'''ucky '''g'''ift '''y'''ellowbrickroad '''ch'''op '''m'''achinegun '''b'''ubble '''l'''ion '''p'''ump too'''th''' yo'''lk''' li'''nk''' pat'''ch''' cur'''v'''e cru'''nch''' / '''-lch''' ca'''sh''' paw'''n''' ko'''ng''' pu'''mp''' ha'''m''' ba'''dge''' ('''j''') soc'''k''' reda'''ction''' ('''kshun''') bu'''lge''' ('''lj''') lo'''tion''' ('''shun''') * Vowels: <br> moon - AO - identifies homophones spelled &quot;oo&quot; or &quot;oa&quot; <br> mitt - EU<br> ape-baby - AEU <br> rowing-boat - OE <br> pea - AE - identifies homophones spelled &quot;ea&quot; or &quot;ae&quot; <br> wheel - AOE <br> oil - OEU - often &quot;wildcard&quot; for making funky briefs <br> saw - AU <br> soup - AOU <br> pow - OU <br> eye - AOEU <br> <span id="notes"></span> == Notes: == * Please feel welcome to update this wiki page's structure to include additional mnemonic models if desired * Layered &quot;xcf&quot; image files editable in [https://www.gimp.org/ GIMP] are available [https://www.dropbox.com/sh/h1ytoo3kydwi8hn/AABXtMzt2gH3TZlhCrTbjeB_a?dl=0 here] if you want to put in some of your own mnemonics. * The best mnemonics are always the ones you make up yourself. So feel encouraged to make your own mnemonic sketches, or modify the xcf file with your favorite sound/image associations. * Info about mnemonic methods: [http://artofmemory.com/ ArtOfMemory] , [https://www.ted.com/talks/joshua_foer_feats_of_memory_anyone_can_do?language=en JoshFoerTEDTalk], [https://en.wikipedia.org/wiki/World_Memory_Championships WorldMemoryChampionships] , * For I guess some of the source images included in the mnemonic montages are under education etc, &quot;[https://en.wikipedia.org/wiki/Fair_use fair use]&quot;. But other than that, feel free to use and abuse. Public domain for any of my contributions! :) 2e14a09c3075f373e38217e1f188b2e44cb1db36 File:Ireland steno layout.png 6 56 190 2024-02-12T21:22:04Z Rice 1 wikitext text/x-wiki ireland steno layout e26ee378f1d0bf46f4639d6306ee7ac878c1c9eb File:Compound stroke mnemonic 1.png 6 57 191 2024-02-12T21:23:04Z Rice 1 wikitext text/x-wiki compound stroke mnemonic 1 808d138cb61f2f0583de38c839cd365cb29f4e33 File:Compound stroke mnemonic 2.jpg 6 58 192 2024-02-12T21:25:45Z Rice 1 wikitext text/x-wiki compound stroke mnemonic 2 9f6f2d6609326fababcdd4f5c1d5f1369296c7d0 Top 100 Words in Plover's Dictionary 0 31 194 142 2024-02-12T21:27:59Z Rice 1 wikitext text/x-wiki What they are, and why they are stroked like that. <span id="introduction"></span> == Introduction == Fun fact: The top 100 words in the English language make up about 50% of all written material. When learning steno theory, you might be confused by the fact that many common words are not written out phonetically. There are many reasons that this is the case, but it boils down to: * Avoiding [https://github.com/openstenoproject/plover/wiki/Glossary#word-boundary word boundary errors] * Ease of stroking <span id="the-list"></span> == The List == <span id="1-the"></span> === 1. the === <code>-T</code> The most common word in the English language is reserved to just one key, right-hand <code>-T</code>. The right hand position makes it easy to have a single stroke brief for some of the most common two-word phrases. For example: <code>SKP-T</code> for &quot;and the&quot;. <span id="2-be"></span> === 2. be === <code>-B</code> Right-hand <code>-B</code>. The &quot;B&quot; key in Plover just happens to be the &quot;be&quot; key. How convenient! Writing out &quot;be&quot; like <code>PWE</code> is the word part &quot;be^&quot;. For example: &quot;beware&quot; or &quot;belated&quot;. And the phonetic <code>PWAOE</code> is &quot;bee&quot;! <span id="3-to"></span> === 3. to === <code>TO</code> Written out by spelling, <code>TO</code>. This is easy to hit and free of conflicts. Warning: <code>O</code> for &quot;to&quot; in the default dictionary is a misstroke. It is not free from word boundaries. <span id="4-of"></span> === 4. of === <code>-F</code> Right-hand <code>-F</code>. This is a simple one key stroke, and it frees up <code>OF</code> to be used for &quot;off&quot;. <span id="5-and"></span> === 5. and === <code>SKP-</code> <code>SKP-</code>. This is an easy to hit stroke with only the left hand. This makes it a good candidate for starting phrases, like <code>SKPU</code> for &quot;and you&quot;. <span id="6-a"></span> === 6. a === <code>AEU</code> <code>A</code> is used as a prefix for words like &quot;affix&quot; or &quot;arrive&quot;. The tense A sound is used to avoid conflicts. In some theories, these strokes are mixed, and you could swap them safely, if you wanted. <span id="7-in"></span> === 7. in === <code>TPH</code> <code>TPH</code> is just the left-hand <code>N</code>. This combination frees up <code>EUPB</code> to be used for the &quot;in^&quot; prefix, like in &quot;indoors&quot;. Also good for phrases, such as <code>TPH-T</code> for &quot;in the&quot;. <span id="8-that"></span> === 8. that === <code>THA</code> We drop the ending T to bring this stroke into the left hand for use at the beginning of phrases. Examples: <code>THAR</code> for &quot;that are&quot;, <code>THAS</code> for &quot;that is&quot;. <span id="9-have"></span> === 9. have === <code>SR-</code> This is the left-hand <code>V</code>. The phonetic version of this would be <code>HA*F</code> which is much harder to stroke for such a common word, and the left-hand makes right-hand phrase parts feel more natural, like <code>SR-T</code> for &quot;have the&quot;. <code>HAF</code> and <code>HA*F</code> get mapped to &quot;half&quot; and &quot;1/2&quot; in the default dictionary, respectively. <span id="10-i"></span> === 10. I === <code>EU</code> (<code>I</code>) This is a non-phonetic stroke to give space for &quot;eye&quot;. It's easy to hit and fits in some phrases, such as <code>SKPEU</code> for &quot;and I&quot;. Note that, in some cases, you will use the <code>AOEU</code> cluster for I, such as in &quot;I'll&quot; (<code>AOEUL</code>) and &quot;I'm&quot; (<code>AOEUPL</code>) because the shorter versions are used for other things, in this case &quot;ill&quot; and the word beginning &quot;im^&quot;. <span id="11-it"></span> === 11. it === <code>T-</code> This is easy to hit and on the left hand for beginning phrases such as <code>TWAS</code> for &quot;it was&quot;. Same pattern as for &quot;in&quot; and &quot;if&quot;. <span id="12-for"></span> === 12. for === <code>TP-R</code> (F-R). This drops the vowel to save effort for such a common word. If you want to use &quot;for^&quot; the prefix, then use <code>FAUR</code>. For example, forgone is <code>FAUR/TKPWOPB</code>. <span id="13-not"></span> === 13. not === <code>TPHOT</code> <span id="14-on"></span> === 14. on === <code>OPB</code> <span id="15-with"></span> === 15. with === <code>W-</code> This is another easy to use single key stroke that can begin phrases like <code>WOUR</code> for &quot;with our&quot; and <code>W-T</code> for &quot;with the&quot;. <span id="16-he"></span> === 16. he === <code>HE</code> This is recommended over the <code>E</code>-only version for most cases, but depending on the phrase or word you might need <code>E</code> (<code>SKPE</code>: and he), <code>HE</code> (<code>HEBGD</code>: he could), and <code>HAOE</code> (<code>HAO*EL</code>: he'll) <span id="17-as"></span> === 17. as === <code>AS</code> (spelling) or <code>AZ</code> (phonetic). <span id="18-you"></span> === 18. you === <code>U</code> The <code>U</code> key is used for &quot;you&quot;. Can be used in phrases such as <code>SKPU</code> for &quot;and you&quot;. <span id="19-do"></span> === 19. do === <code>TKO</code> (spelling). Don't drop the vowel, because <code>TK-</code> alone is used for &quot;did&quot;. <span id="20-at"></span> === 20. at === <code>AT</code> <span id="21-this"></span> === 21. this === <code>TH</code> &quot;This&quot; is a special case, as it's basically set to <code>TH</code> for convenience and to open up the opportunity for several other briefs. For example, <code>THEU</code> is used for &quot;think&quot;, and <code>THEUS</code> follows as &quot;thinks&quot;. Also works in phrases: <code>TH-FS</code> for &quot;this was&quot; <span id="22-but"></span> === 22. but === <code>PWUT</code> or <code>PWU</code>. Mirabai uses <code>PWUT</code> as &quot;but&quot; and that is okay, but you can safely remap <code>PWUT</code> to &quot;but the&quot; if you want to use <code>PWU</code> as &quot;but&quot; exclusively. <span id="23-his"></span> === 23. his === <code>HEUS</code> (spelling), <code>HEUZ</code> (phonetic) <span id="24-by"></span> === 24. by === <code>PWEU</code> This is a non-phonetic mapping to make room for <code>PWAOEU</code>: &quot;buy&quot;. Add an asterisk to &quot;by&quot; and get the word beginning &quot;bi^&quot;, add an asterisk to &quot;buy&quot; and get &quot;bye&quot;. <span id="25-from"></span> === 25. from === <code>TPR-</code> (<code>FR-</code>). This is similar to &quot;for&quot; (<code>TP-R</code>), but instead of dropping just the vowel, we drop the ending -M sound as well. This opens up &quot;from&quot; to phrases, like in <code>TPRUS</code> for &quot;from us&quot; and <code>TPR-T</code> for &quot;from the&quot; and <code>TPREUPLT</code> for &quot;from time to time&quot;. <span id="26-they"></span> === 26. they === <code>THE</code> Since &quot;the&quot; is stroked with just <code>-T</code>, we can place &quot;they&quot; in this stroke. It's important not to use <code>THAEU</code> to avoid potential conflict when we get to &quot;they're&quot; and &quot;their&quot;. <span id="27-we"></span> === 27. we === <code>WE</code> (spelling) or <code>WAOE</code> (phonetic) <span id="28-say"></span> === 28. say === <code>SAEU</code> (phonetic). Advanced: Also present as a right-hand only shortcut as <code>-BZ</code>, such as <code>THEBZ</code> for &quot;they say&quot;. Get the past tense with <code>-BS</code> such as <code>THEBS</code> for &quot;they said&quot;. <span id="29-her"></span> === 29. her === <code>HER</code> <span id="30-she"></span> === 30. she === <code>SHE</code> (spelling) or <code>SHAOE</code> (phonetic) <span id="31-or"></span> === 31. or === <code>OR</code>. The phonetic version is given instead to &quot;other&quot; (<code>OER</code>). <span id="32-an"></span> === 32. an === <code>APB</code> <span id="33-will"></span> === 33. will === <code>HR-</code> Left-hand L. Useful for phrases, such as <code>HR-B</code> for &quot;will be&quot; and <code>HRU</code> for &quot;will you&quot;. <span id="34-my"></span> === 34. my === <code>PHEU</code> or <code>PHAOEU</code>. We break phonetic convention to offer an easier to hit stroke. <span id="35-one"></span> === 35. one === <code>WUPB</code> (phonetic) <span id="36-all"></span> === 36. all === <code>AUL</code> (phonetic). This vowel is common in the Plover dictionary, such as in <code>WAUL</code> (wall) and <code>PWAUL</code> (ball). <span id="37-would"></span> === 37. would === <code>WO</code>. Left-hand-only brief is useful for phrases: <code>WOB</code> for &quot;would be&quot; and <code>WOU</code> for &quot;would you&quot;. <span id="38-there"></span> === 38. there === <code>THR-</code> This brief is used to avoid conflict with <code>THER</code> for &quot;they're&quot; and <code>THAEUR</code> for &quot;their&quot;. <span id="39-their"></span> === 39. their === <code>THAEUR</code> (phonetic). The homophone &quot;they're&quot; is stroked with <code>THER</code> which is the brief <code>THE</code> for &quot;they&quot; with <code>-R</code> added on. <span id="40-what"></span> === 40. what === <code>WHA</code> Similar to <code>THA</code> for &quot;that&quot;, <code>WHAT</code> is &quot;what the&quot;. <span id="41-so"></span> === 41. so === <code>SO</code> (spelling) <span id="42-up"></span> === 42. up === <code>UP</code> Use <code>AUP</code> for the word beginning &quot;up^&quot; like <code>AUP/WARDZ</code> for &quot;upwards&quot;. <span id="43-out"></span> === 43. out === <code>OUT</code> Use <code>AOUT</code> for the word beginning &quot;out^&quot; like <code>AOUT/SPOEBG/*EN</code> for &quot;outspoken&quot; or <code>AOUT/RAEUPBLG</code> for &quot;outrage&quot;. <span id="44-if"></span> === 44. if === <code>TP-</code> The bare left F is used for &quot;if&quot;. Good as a phrase beginner, such as <code>TP-T</code> for &quot;if the&quot;. Same pattern as &quot;it&quot; and &quot;in&quot;. <span id="45-about"></span> === 45. about === <code>PW-</code> The left-hand B is used for &quot;about&quot; as a convenient brief. Some theories do this word differently. One nice benefit of being on the left side is, of course, phrases: <code>PW-T</code> for &quot;about the&quot;. <span id="46-who"></span> === 46. who === <code>WHO</code> (spelling). We can't use <code>HAOU</code> (hue) or <code>HAO</code> (hoo). <span id="47-get"></span> === 47. get === <code>TKPWET</code> or <code>TKPW-T</code> <span id="48-which"></span> === 48. which === <code>WEU</code>. Just a brief. <span id="49-go"></span> === 49. go === <code>TKPWO</code> (spelling), <code>TKPWOE</code> (phonetic), or just <code>TKPW</code>. <span id="50-me"></span> === 50. me === <code>PHE</code> (spelling), <code>PHAOE</code> (phonetic). As with many of these common words, being less strict on the vowel gives your fingers a potential break. <span id="51-when"></span> === 51. when === <code>WH</code> (brief) or <code>WHEPB</code> (spelling) <span id="52-make"></span> === 52. make === <code>PHAEUBG</code> (<code>MAIK</code>) (phonetic) <span id="53-can"></span> === 53. can === The left-hand <code>K-</code> only, useful for phrases. <code>K-B</code> (can be). <span id="54-like"></span> === 54. like === <code>HRAOEUBG</code> (phonetic) <span id="55-time"></span> === 55. time === <code>TAOEUPL</code> (phonetic) <span id="56-no"></span> === 56. no === <code>TPHO</code> (spelling). The phonetic version is saved for &quot;know&quot;. <span id="57-just"></span> === 57. just === <code>SKWRUFT</code> Remember that <code>-F</code> is sometimes used for S. <span id="58-him"></span> === 58. him === <code>HEUPL</code> <span id="59-know"></span> === 59. know === <code>TPHOE</code> (phonetic) <span id="60-take"></span> === 60. take === <code>TAEUBG</code> (phonetic) <span id="61-people"></span> === 61. people === <code>PAOEPL</code> In this case <code>-PL</code> is used for the &quot;pl&quot; sound instead of <code>-M</code>. <span id="62-into"></span> === 62. into === <code>TPHAO</code> <code>TPH-</code> is &quot;in&quot;, and <code>AO</code> is sometimes used for <code>oo</code> which sounds liked the vowel in &quot;into&quot;. Can't use <code>TPHAOU</code> as it is being used by &quot;knew&quot;. <span id="63-year"></span> === 63. year === <code>KWRAOER</code> (phonetic) <span id="64-your"></span> === 64. your === <code>KWROUR</code> (spelling). Don't use <code>KWRUR</code> as that's the word ending <code>^ur</code> like in <code>KHROES/KWRUR</code> (closure). <span id="65-good"></span> === 65. good === <code>TKPWAOD</code> <span id="66-some"></span> === 66. some === <code>SOPL</code> As a word beginning, <code>S-</code> and <code>SPH-</code> are used: for example, <code>SPH-PB</code> for &quot;someone&quot; and <code>S-G</code> for &quot;something&quot;. <span id="67-could"></span> === 67. could === <code>KO</code> Brief like <code>WO</code> for &quot;would&quot;. <span id="68-them"></span> === 68. them === <code>THEPL</code> <span id="69-see"></span> === 69. see === <code>SAOE</code> <span id="70-other"></span> === 70. other === <code>OER</code> Shows up as a word part, like in <code>TPHOER</code> for &quot;another&quot;. <span id="71-than"></span> === 71. than === <code>THAPB</code> (spelling) <span id="72-then"></span> === 72. then === <code>THEPB</code> (spelling) <span id="73-now"></span> === 73. now === <code>TPHOU</code> <span id="74-look"></span> === 74. look === <code>HRAOBG</code> <span id="75-only"></span> === 75. only === <code>OEPBL</code> In Plover's dictionary, <code>E</code> is often added to strokes to make them end with an &quot;ee&quot; sound. <code>OEPBL</code> can be thought of as &quot;onl/ee&quot;. Lots of briefs use this, such as <code>KRAER</code> for &quot;contrary&quot; and <code>TPAEPL</code> for &quot;family&quot;. <span id="76-come"></span> === 76. come === <code>KOPL</code> <span id="77-its"></span> === 77. its === <code>EUTS</code> <code>T-S</code> is used for &quot;it's&quot;. <span id="78-over"></span> === 78. over === <code>OEFR</code> Emphasizing the tense-O sound to contrast with <code>OFR</code> for &quot;offer&quot;. To use as a prefix, use <code>AUFR</code>, such as <code>AUFR/TKOPB</code> for &quot;overdone&quot;. <span id="79-think"></span> === 79. think === <code>THEU</code> (brief), with a whole family: <code>THEUS</code> for &quot;thinks&quot;, <code>THEUG</code> for &quot;thinking&quot;. <span id="80-also"></span> === 80. also === <code>HR-S</code> (brief) <span id="81-back"></span> === 81. back === <code>PWABG</code> <span id="82-after"></span> === 82. after === <code>AF</code> <code>AFT</code> is a misstroke entry which you could consider remapping to &quot;aft&quot; or &quot;after the&quot;. To use as a prefix, use <code>AFR</code>, such as <code>AFR/TAEUFT</code> for &quot;aftertaste&quot;. <span id="83-use"></span> === 83. use === <code>AOUS</code> or <code>AOUZ</code> <span id="84-two"></span> === 84. two === <code>TWO</code> (spelling) <span id="85-how"></span> === 85. how === <code>HOU</code> <span id="86-our"></span> === 86. our === <code>OUR</code> <span id="87-work"></span> === 87. work === <code>WORBG</code> <span id="88-first"></span> === 88. first === <code>TPEURS</code> This brief drops the &quot;t&quot; sound for comfort. <span id="89-well"></span> === 89. well === <code>WEL</code> <span id="90-way"></span> === 90. way === <code>WAEU</code> <span id="91-even"></span> === 91. even === <code>AOEPB</code> or <code>AOEFPB</code> Dropping the -F makes this stroke easier to hit. <span id="92-new"></span> === 92. new === <code>TPHU</code> Briefed to avoid conflict with <code>TPHAOU</code> for &quot;knew&quot;. <span id="93-want"></span> === 93. want === <code>WAPBT</code> <span id="94-because"></span> === 94. because === <code>PWAUS</code> or <code>PWAUZ</code> (briefs) <span id="95-any"></span> === 95. any === <code>TPHEU</code> (brief) <span id="96-these"></span> === 96. these === <code>THEZ</code> (brief) or <code>THAOES</code>/<code>THAOEZ</code> (phonetic). The brief is much easier to hit. <span id="97-give"></span> === 97. give === <code>TKPWEUF</code> No need for an asterisk, which is often the case with common words in the Plover dictionary. <span id="98-day"></span> === 98. day === <code>TKAEU</code> (phonetic) <span id="99-most"></span> === 99. most === <code>PHOFT</code>, <code>PHOEFT</code>, <code>PHO*ES</code>, or <code>PHO*S</code>. Go with the option you like most. <span id="100-us"></span> === 100. us === <code>US</code> 52d74c17b8ae6ad5daec9b11aec27b030107bcda 195 194 2024-02-12T21:29:06Z Rice 1 fix broken internal link wikitext text/x-wiki What they are, and why they are stroked like that. <span id="introduction"></span> == Introduction == Fun fact: The top 100 words in the English language make up about 50% of all written material. When learning steno theory, you might be confused by the fact that many common words are not written out phonetically. There are many reasons that this is the case, but it boils down to: * Avoiding [[Glossary#Word Boundary|word boundary errors]] * Ease of stroking <span id="the-list"></span> == The List == <span id="1-the"></span> === 1. the === <code>-T</code> The most common word in the English language is reserved to just one key, right-hand <code>-T</code>. The right hand position makes it easy to have a single stroke brief for some of the most common two-word phrases. For example: <code>SKP-T</code> for &quot;and the&quot;. <span id="2-be"></span> === 2. be === <code>-B</code> Right-hand <code>-B</code>. The &quot;B&quot; key in Plover just happens to be the &quot;be&quot; key. How convenient! Writing out &quot;be&quot; like <code>PWE</code> is the word part &quot;be^&quot;. For example: &quot;beware&quot; or &quot;belated&quot;. And the phonetic <code>PWAOE</code> is &quot;bee&quot;! <span id="3-to"></span> === 3. to === <code>TO</code> Written out by spelling, <code>TO</code>. This is easy to hit and free of conflicts. Warning: <code>O</code> for &quot;to&quot; in the default dictionary is a misstroke. It is not free from word boundaries. <span id="4-of"></span> === 4. of === <code>-F</code> Right-hand <code>-F</code>. This is a simple one key stroke, and it frees up <code>OF</code> to be used for &quot;off&quot;. <span id="5-and"></span> === 5. and === <code>SKP-</code> <code>SKP-</code>. This is an easy to hit stroke with only the left hand. This makes it a good candidate for starting phrases, like <code>SKPU</code> for &quot;and you&quot;. <span id="6-a"></span> === 6. a === <code>AEU</code> <code>A</code> is used as a prefix for words like &quot;affix&quot; or &quot;arrive&quot;. The tense A sound is used to avoid conflicts. In some theories, these strokes are mixed, and you could swap them safely, if you wanted. <span id="7-in"></span> === 7. in === <code>TPH</code> <code>TPH</code> is just the left-hand <code>N</code>. This combination frees up <code>EUPB</code> to be used for the &quot;in^&quot; prefix, like in &quot;indoors&quot;. Also good for phrases, such as <code>TPH-T</code> for &quot;in the&quot;. <span id="8-that"></span> === 8. that === <code>THA</code> We drop the ending T to bring this stroke into the left hand for use at the beginning of phrases. Examples: <code>THAR</code> for &quot;that are&quot;, <code>THAS</code> for &quot;that is&quot;. <span id="9-have"></span> === 9. have === <code>SR-</code> This is the left-hand <code>V</code>. The phonetic version of this would be <code>HA*F</code> which is much harder to stroke for such a common word, and the left-hand makes right-hand phrase parts feel more natural, like <code>SR-T</code> for &quot;have the&quot;. <code>HAF</code> and <code>HA*F</code> get mapped to &quot;half&quot; and &quot;1/2&quot; in the default dictionary, respectively. <span id="10-i"></span> === 10. I === <code>EU</code> (<code>I</code>) This is a non-phonetic stroke to give space for &quot;eye&quot;. It's easy to hit and fits in some phrases, such as <code>SKPEU</code> for &quot;and I&quot;. Note that, in some cases, you will use the <code>AOEU</code> cluster for I, such as in &quot;I'll&quot; (<code>AOEUL</code>) and &quot;I'm&quot; (<code>AOEUPL</code>) because the shorter versions are used for other things, in this case &quot;ill&quot; and the word beginning &quot;im^&quot;. <span id="11-it"></span> === 11. it === <code>T-</code> This is easy to hit and on the left hand for beginning phrases such as <code>TWAS</code> for &quot;it was&quot;. Same pattern as for &quot;in&quot; and &quot;if&quot;. <span id="12-for"></span> === 12. for === <code>TP-R</code> (F-R). This drops the vowel to save effort for such a common word. If you want to use &quot;for^&quot; the prefix, then use <code>FAUR</code>. For example, forgone is <code>FAUR/TKPWOPB</code>. <span id="13-not"></span> === 13. not === <code>TPHOT</code> <span id="14-on"></span> === 14. on === <code>OPB</code> <span id="15-with"></span> === 15. with === <code>W-</code> This is another easy to use single key stroke that can begin phrases like <code>WOUR</code> for &quot;with our&quot; and <code>W-T</code> for &quot;with the&quot;. <span id="16-he"></span> === 16. he === <code>HE</code> This is recommended over the <code>E</code>-only version for most cases, but depending on the phrase or word you might need <code>E</code> (<code>SKPE</code>: and he), <code>HE</code> (<code>HEBGD</code>: he could), and <code>HAOE</code> (<code>HAO*EL</code>: he'll) <span id="17-as"></span> === 17. as === <code>AS</code> (spelling) or <code>AZ</code> (phonetic). <span id="18-you"></span> === 18. you === <code>U</code> The <code>U</code> key is used for &quot;you&quot;. Can be used in phrases such as <code>SKPU</code> for &quot;and you&quot;. <span id="19-do"></span> === 19. do === <code>TKO</code> (spelling). Don't drop the vowel, because <code>TK-</code> alone is used for &quot;did&quot;. <span id="20-at"></span> === 20. at === <code>AT</code> <span id="21-this"></span> === 21. this === <code>TH</code> &quot;This&quot; is a special case, as it's basically set to <code>TH</code> for convenience and to open up the opportunity for several other briefs. For example, <code>THEU</code> is used for &quot;think&quot;, and <code>THEUS</code> follows as &quot;thinks&quot;. Also works in phrases: <code>TH-FS</code> for &quot;this was&quot; <span id="22-but"></span> === 22. but === <code>PWUT</code> or <code>PWU</code>. Mirabai uses <code>PWUT</code> as &quot;but&quot; and that is okay, but you can safely remap <code>PWUT</code> to &quot;but the&quot; if you want to use <code>PWU</code> as &quot;but&quot; exclusively. <span id="23-his"></span> === 23. his === <code>HEUS</code> (spelling), <code>HEUZ</code> (phonetic) <span id="24-by"></span> === 24. by === <code>PWEU</code> This is a non-phonetic mapping to make room for <code>PWAOEU</code>: &quot;buy&quot;. Add an asterisk to &quot;by&quot; and get the word beginning &quot;bi^&quot;, add an asterisk to &quot;buy&quot; and get &quot;bye&quot;. <span id="25-from"></span> === 25. from === <code>TPR-</code> (<code>FR-</code>). This is similar to &quot;for&quot; (<code>TP-R</code>), but instead of dropping just the vowel, we drop the ending -M sound as well. This opens up &quot;from&quot; to phrases, like in <code>TPRUS</code> for &quot;from us&quot; and <code>TPR-T</code> for &quot;from the&quot; and <code>TPREUPLT</code> for &quot;from time to time&quot;. <span id="26-they"></span> === 26. they === <code>THE</code> Since &quot;the&quot; is stroked with just <code>-T</code>, we can place &quot;they&quot; in this stroke. It's important not to use <code>THAEU</code> to avoid potential conflict when we get to &quot;they're&quot; and &quot;their&quot;. <span id="27-we"></span> === 27. we === <code>WE</code> (spelling) or <code>WAOE</code> (phonetic) <span id="28-say"></span> === 28. say === <code>SAEU</code> (phonetic). Advanced: Also present as a right-hand only shortcut as <code>-BZ</code>, such as <code>THEBZ</code> for &quot;they say&quot;. Get the past tense with <code>-BS</code> such as <code>THEBS</code> for &quot;they said&quot;. <span id="29-her"></span> === 29. her === <code>HER</code> <span id="30-she"></span> === 30. she === <code>SHE</code> (spelling) or <code>SHAOE</code> (phonetic) <span id="31-or"></span> === 31. or === <code>OR</code>. The phonetic version is given instead to &quot;other&quot; (<code>OER</code>). <span id="32-an"></span> === 32. an === <code>APB</code> <span id="33-will"></span> === 33. will === <code>HR-</code> Left-hand L. Useful for phrases, such as <code>HR-B</code> for &quot;will be&quot; and <code>HRU</code> for &quot;will you&quot;. <span id="34-my"></span> === 34. my === <code>PHEU</code> or <code>PHAOEU</code>. We break phonetic convention to offer an easier to hit stroke. <span id="35-one"></span> === 35. one === <code>WUPB</code> (phonetic) <span id="36-all"></span> === 36. all === <code>AUL</code> (phonetic). This vowel is common in the Plover dictionary, such as in <code>WAUL</code> (wall) and <code>PWAUL</code> (ball). <span id="37-would"></span> === 37. would === <code>WO</code>. Left-hand-only brief is useful for phrases: <code>WOB</code> for &quot;would be&quot; and <code>WOU</code> for &quot;would you&quot;. <span id="38-there"></span> === 38. there === <code>THR-</code> This brief is used to avoid conflict with <code>THER</code> for &quot;they're&quot; and <code>THAEUR</code> for &quot;their&quot;. <span id="39-their"></span> === 39. their === <code>THAEUR</code> (phonetic). The homophone &quot;they're&quot; is stroked with <code>THER</code> which is the brief <code>THE</code> for &quot;they&quot; with <code>-R</code> added on. <span id="40-what"></span> === 40. what === <code>WHA</code> Similar to <code>THA</code> for &quot;that&quot;, <code>WHAT</code> is &quot;what the&quot;. <span id="41-so"></span> === 41. so === <code>SO</code> (spelling) <span id="42-up"></span> === 42. up === <code>UP</code> Use <code>AUP</code> for the word beginning &quot;up^&quot; like <code>AUP/WARDZ</code> for &quot;upwards&quot;. <span id="43-out"></span> === 43. out === <code>OUT</code> Use <code>AOUT</code> for the word beginning &quot;out^&quot; like <code>AOUT/SPOEBG/*EN</code> for &quot;outspoken&quot; or <code>AOUT/RAEUPBLG</code> for &quot;outrage&quot;. <span id="44-if"></span> === 44. if === <code>TP-</code> The bare left F is used for &quot;if&quot;. Good as a phrase beginner, such as <code>TP-T</code> for &quot;if the&quot;. Same pattern as &quot;it&quot; and &quot;in&quot;. <span id="45-about"></span> === 45. about === <code>PW-</code> The left-hand B is used for &quot;about&quot; as a convenient brief. Some theories do this word differently. One nice benefit of being on the left side is, of course, phrases: <code>PW-T</code> for &quot;about the&quot;. <span id="46-who"></span> === 46. who === <code>WHO</code> (spelling). We can't use <code>HAOU</code> (hue) or <code>HAO</code> (hoo). <span id="47-get"></span> === 47. get === <code>TKPWET</code> or <code>TKPW-T</code> <span id="48-which"></span> === 48. which === <code>WEU</code>. Just a brief. <span id="49-go"></span> === 49. go === <code>TKPWO</code> (spelling), <code>TKPWOE</code> (phonetic), or just <code>TKPW</code>. <span id="50-me"></span> === 50. me === <code>PHE</code> (spelling), <code>PHAOE</code> (phonetic). As with many of these common words, being less strict on the vowel gives your fingers a potential break. <span id="51-when"></span> === 51. when === <code>WH</code> (brief) or <code>WHEPB</code> (spelling) <span id="52-make"></span> === 52. make === <code>PHAEUBG</code> (<code>MAIK</code>) (phonetic) <span id="53-can"></span> === 53. can === The left-hand <code>K-</code> only, useful for phrases. <code>K-B</code> (can be). <span id="54-like"></span> === 54. like === <code>HRAOEUBG</code> (phonetic) <span id="55-time"></span> === 55. time === <code>TAOEUPL</code> (phonetic) <span id="56-no"></span> === 56. no === <code>TPHO</code> (spelling). The phonetic version is saved for &quot;know&quot;. <span id="57-just"></span> === 57. just === <code>SKWRUFT</code> Remember that <code>-F</code> is sometimes used for S. <span id="58-him"></span> === 58. him === <code>HEUPL</code> <span id="59-know"></span> === 59. know === <code>TPHOE</code> (phonetic) <span id="60-take"></span> === 60. take === <code>TAEUBG</code> (phonetic) <span id="61-people"></span> === 61. people === <code>PAOEPL</code> In this case <code>-PL</code> is used for the &quot;pl&quot; sound instead of <code>-M</code>. <span id="62-into"></span> === 62. into === <code>TPHAO</code> <code>TPH-</code> is &quot;in&quot;, and <code>AO</code> is sometimes used for <code>oo</code> which sounds liked the vowel in &quot;into&quot;. Can't use <code>TPHAOU</code> as it is being used by &quot;knew&quot;. <span id="63-year"></span> === 63. year === <code>KWRAOER</code> (phonetic) <span id="64-your"></span> === 64. your === <code>KWROUR</code> (spelling). Don't use <code>KWRUR</code> as that's the word ending <code>^ur</code> like in <code>KHROES/KWRUR</code> (closure). <span id="65-good"></span> === 65. good === <code>TKPWAOD</code> <span id="66-some"></span> === 66. some === <code>SOPL</code> As a word beginning, <code>S-</code> and <code>SPH-</code> are used: for example, <code>SPH-PB</code> for &quot;someone&quot; and <code>S-G</code> for &quot;something&quot;. <span id="67-could"></span> === 67. could === <code>KO</code> Brief like <code>WO</code> for &quot;would&quot;. <span id="68-them"></span> === 68. them === <code>THEPL</code> <span id="69-see"></span> === 69. see === <code>SAOE</code> <span id="70-other"></span> === 70. other === <code>OER</code> Shows up as a word part, like in <code>TPHOER</code> for &quot;another&quot;. <span id="71-than"></span> === 71. than === <code>THAPB</code> (spelling) <span id="72-then"></span> === 72. then === <code>THEPB</code> (spelling) <span id="73-now"></span> === 73. now === <code>TPHOU</code> <span id="74-look"></span> === 74. look === <code>HRAOBG</code> <span id="75-only"></span> === 75. only === <code>OEPBL</code> In Plover's dictionary, <code>E</code> is often added to strokes to make them end with an &quot;ee&quot; sound. <code>OEPBL</code> can be thought of as &quot;onl/ee&quot;. Lots of briefs use this, such as <code>KRAER</code> for &quot;contrary&quot; and <code>TPAEPL</code> for &quot;family&quot;. <span id="76-come"></span> === 76. come === <code>KOPL</code> <span id="77-its"></span> === 77. its === <code>EUTS</code> <code>T-S</code> is used for &quot;it's&quot;. <span id="78-over"></span> === 78. over === <code>OEFR</code> Emphasizing the tense-O sound to contrast with <code>OFR</code> for &quot;offer&quot;. To use as a prefix, use <code>AUFR</code>, such as <code>AUFR/TKOPB</code> for &quot;overdone&quot;. <span id="79-think"></span> === 79. think === <code>THEU</code> (brief), with a whole family: <code>THEUS</code> for &quot;thinks&quot;, <code>THEUG</code> for &quot;thinking&quot;. <span id="80-also"></span> === 80. also === <code>HR-S</code> (brief) <span id="81-back"></span> === 81. back === <code>PWABG</code> <span id="82-after"></span> === 82. after === <code>AF</code> <code>AFT</code> is a misstroke entry which you could consider remapping to &quot;aft&quot; or &quot;after the&quot;. To use as a prefix, use <code>AFR</code>, such as <code>AFR/TAEUFT</code> for &quot;aftertaste&quot;. <span id="83-use"></span> === 83. use === <code>AOUS</code> or <code>AOUZ</code> <span id="84-two"></span> === 84. two === <code>TWO</code> (spelling) <span id="85-how"></span> === 85. how === <code>HOU</code> <span id="86-our"></span> === 86. our === <code>OUR</code> <span id="87-work"></span> === 87. work === <code>WORBG</code> <span id="88-first"></span> === 88. first === <code>TPEURS</code> This brief drops the &quot;t&quot; sound for comfort. <span id="89-well"></span> === 89. well === <code>WEL</code> <span id="90-way"></span> === 90. way === <code>WAEU</code> <span id="91-even"></span> === 91. even === <code>AOEPB</code> or <code>AOEFPB</code> Dropping the -F makes this stroke easier to hit. <span id="92-new"></span> === 92. new === <code>TPHU</code> Briefed to avoid conflict with <code>TPHAOU</code> for &quot;knew&quot;. <span id="93-want"></span> === 93. want === <code>WAPBT</code> <span id="94-because"></span> === 94. because === <code>PWAUS</code> or <code>PWAUZ</code> (briefs) <span id="95-any"></span> === 95. any === <code>TPHEU</code> (brief) <span id="96-these"></span> === 96. these === <code>THEZ</code> (brief) or <code>THAOES</code>/<code>THAOEZ</code> (phonetic). The brief is much easier to hit. <span id="97-give"></span> === 97. give === <code>TKPWEUF</code> No need for an asterisk, which is often the case with common words in the Plover dictionary. <span id="98-day"></span> === 98. day === <code>TKAEU</code> (phonetic) <span id="99-most"></span> === 99. most === <code>PHOFT</code>, <code>PHOEFT</code>, <code>PHO*ES</code>, or <code>PHO*S</code>. Go with the option you like most. <span id="100-us"></span> === 100. us === <code>US</code> d1186497de71792acf0ae4b4dae6a58dadf57212 Measuring Your Real World Writing Speed 0 59 196 2024-02-12T21:31:59Z Rice 1 Created page with "Many discussions in the Plover community center around writing speed: * New starters often focus on how fast they can write, often posting their current top speed (in any test). * New starters often want to work out when they will reach their "real world" speed (on a character-based keyboard) while using Steno. * People creating stenography keyboards post videos on social media of successfully using those devices to write at above 200WPM. This page is a repository of co..." wikitext text/x-wiki Many discussions in the Plover community center around writing speed: * New starters often focus on how fast they can write, often posting their current top speed (in any test). * New starters often want to work out when they will reach their "real world" speed (on a character-based keyboard) while using Steno. * People creating stenography keyboards post videos on social media of successfully using those devices to write at above 200WPM. This page is a repository of common ways to measure your writing speed. If you have a new method that you would like to add, please feel free to modify this page. The hope is that the community will eventually converge on a small number of indicative tests to measure speed. == RealWPM == TODO https://robertmassaioli.medium.com/a-realwpm-for-stenography-be94beffab20 == ao10 == TODO https://discord.com/channels/136953735426473984/1206012724031787019/1206037333011341374 == Reuse Character based typing tests == TODO Explain how this is the least preferred of all the options for "real world" but probably where people will start anyway. ef3b1489ec65d6cea26c270064f1e17f5a12d889 File:Machine configuration window.png 6 60 198 2024-02-12T21:35:19Z Rice 1 wikitext text/x-wiki machine configuration window 76ca2b083f716a5957bc7e034697d50521989ed4 Configuration 0 61 199 2024-02-12T21:35:38Z Rice 1 Created page with "'''Configure ➪ Machine ➪ Keymap''' You can remap how Plover handles keys on your machine. The available options are affected by your system and the machine you are using. <span id="what-is-a-keymap"></span> === What is a keymap? === A key map is.... <span id="remapping-keys-to-different-actions"></span> === Remapping Keys to Different Actions === The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys..." wikitext text/x-wiki '''Configure ➪ Machine ➪ Keymap''' You can remap how Plover handles keys on your machine. The available options are affected by your system and the machine you are using. <span id="what-is-a-keymap"></span> === What is a keymap? === A key map is.... <span id="remapping-keys-to-different-actions"></span> === Remapping Keys to Different Actions === The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.) The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled. <span id="disabling-keyboard-keys"></span> === Disabling Keyboard Keys === Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for &quot;no operation&quot;) which will disable that key while Plover is running. [[File:Machine configuration window.png|frameless|747x747px]] ''The escape key will be disabled while Plover's output is enabled with the configuration above, where the &quot;Escape&quot; key has been mapped to the &quot;no-op&quot; Action.'' 1685b777edc974704d389dfed8d674b1c23a5ce6 201 199 2024-02-12T21:37:45Z Rice 1 wikitext text/x-wiki == Configuration == === Configuring Your Keymap in Plover === '''Configure ➪ Machine ➪ Keymap''' You can remap how Plover handles keys on your machine. The available options are affected by your system and the machine you are using. ==== What is a keymap? ==== A key map is.... ==== Remapping Keys to Different Actions ==== The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.) The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled. ==== Disabling Keyboard Keys ==== Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for &quot;no operation&quot;) which will disable that key while Plover is running. [[File:Machine configuration window.png|frameless|747x747px]] ''The escape key will be disabled while Plover's output is enabled with the configuration above, where the &quot;Escape&quot; key has been mapped to the &quot;no-op&quot; Action.'' 9853255eae0f2d3ef9263296002b01e18702df0b 202 201 2024-02-12T21:38:25Z Rice 1 /* Configuring Your Keymap in Plover */ wikitext text/x-wiki == Configuration == === Configuring the Machine Keymap === '''Configure ➪ Machine ➪ Keymap''' You can remap how Plover handles keys on your machine. The available options are affected by your system and the machine you are using. ==== What is a keymap? ==== A key map is.... ==== Remapping Keys to Different Actions ==== The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.) The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled. ==== Disabling Keyboard Keys ==== Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for &quot;no operation&quot;) which will disable that key while Plover is running. [[File:Machine configuration window.png|frameless|747x747px]] ''The escape key will be disabled while Plover's output is enabled with the configuration above, where the &quot;Escape&quot; key has been mapped to the &quot;no-op&quot; Action.'' 71fad595741099076c979a2f3e6bdb3164d0678f Main Dictionary Changes 0 62 205 2024-02-12T21:43:17Z Rice 1 Created page with "== Main dictionary changes == === Notes on significant/breaking changes between releases === To suggest changes to the dictionary, please leave a comment on [https://github.com/openstenoproject/plover/issues/400 issue #400]. <span id="november-2017"></span> == November 2017 == * First version: weekly-v4.0.0.dev5+9.gba958374 * Commit hash: 06def5968 ''6,494 additions and 965 deletions'' * <code>A*UT</code> is now &quot;auth&quot;. Use <code>OEUT</code> for the &quot;..." wikitext text/x-wiki == Main dictionary changes == === Notes on significant/breaking changes between releases === To suggest changes to the dictionary, please leave a comment on [https://github.com/openstenoproject/plover/issues/400 issue #400]. <span id="november-2017"></span> == November 2017 == * First version: weekly-v4.0.0.dev5+9.gba958374 * Commit hash: 06def5968 ''6,494 additions and 965 deletions'' * <code>A*UT</code> is now &quot;auth&quot;. Use <code>OEUT</code> for the &quot;auto^&quot; prefix. * <code>HR*RT</code> to write &quot;alright&quot; (even though it isn't ''really'' a word :) ) * ex: ** Prefix &quot;ex^&quot; is <code>EBGS</code> ** Word &quot;ex&quot; is <code>*EBGS</code> ** Suffix &quot;^ex&quot; is <code>KWREBGS</code> or <code>SKWREBGS</code> * <code>R-L</code> is a new brief for &quot;really&quot;. Use <code>-RL</code> for &quot;recall&quot;. * <code>R-D</code> is a new brief for &quot;ready&quot;. * Phrases without asterisk go forward, with asterisk go backward. E.g., <code>SRU</code> is &quot;have you&quot; and <code>SR*U</code> is &quot;you have&quot;. This is reversed from before. * <code>KIRM</code>: confirm, <code>KORM</code>: conform * <code>RE/HRAOEFD</code> is now &quot;released&quot;, <code>RE/HREFD</code> or <code>RE/HRAO*EFD</code> is &quot;relieved&quot;. * <code>SEUGT</code> is now &quot;sitting&quot; and &quot;signature&quot; can be written with <code>SEURG</code> * <code>SOER</code> is &quot;sorry&quot;, <code>SOR</code> for &quot;sore&quot; * <code>STEUBGS</code> is now &quot;sticks&quot;, use <code>ST-BGS</code> for &quot;statistics&quot; * <code>SPEBGT</code> is &quot;suspect&quot;, use <code>R-PT</code> for &quot;respect&quot;. * New vocab: &quot;m8&quot;, &quot;vape&quot;, &quot;sext&quot;, &quot;dociousaliexpilisticfragicalirupes&quot;, &quot;dayum&quot;, &quot;covfefe&quot;, and many others. fe4d3a60ae06bf1bbcfc3b874a908e7f5a0c34a6 Software 0 63 207 2024-02-12T21:47:21Z Rice 1 Created page with "{| class="wikitable" |- ! Name ! Description ! Last update ! style="text-align: center;"| Windows ! style="text-align: center;"| macOS ! style="text-align: center;"| Linux ! style="text-align: center;"| Web ! style="text-align: center;"| Android ! style="text-align: center;"| iOS |- | [http://opensteno.org/ Plover] | Desktop application that allows anyone to use stenography to write on their computer | [https://github.com/openstenoproject/plover/releases Nov 2017] | styl..." wikitext text/x-wiki {| class="wikitable" |- ! Name ! Description ! Last update ! style="text-align: center;"| Windows ! style="text-align: center;"| macOS ! style="text-align: center;"| Linux ! style="text-align: center;"| Web ! style="text-align: center;"| Android ! style="text-align: center;"| iOS |- | [http://opensteno.org/ Plover] | Desktop application that allows anyone to use stenography to write on their computer | [https://github.com/openstenoproject/plover/releases Nov 2017] | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [http://play.typeracer.com/ Typeracer] | Multiplayer online browser-based typing game | | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | Plugins | Give extra functionality to Plover. See separate table below. | | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [https://github.com/quintopia/StenoTutor StenoTutor] | | | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [http://qwertysteno.com/Home/ QWERTYsteno] | | | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [https://github.com/SmackleFunky/StenoTray StenoTray] | | Mon Oct 31 2016 16:00:00 GMT-0700 (MST) | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [https://github.com/mkrnr/stenocomplete StenoComplete] | Provides stroke suggestions based on the currently typed letters | Mon Jul 31 2017 15:00:00 GMT-0700 (MST) | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [https://ploverdojo.appspot.com/ Plover Dojo] | Qwerty-based training and drilling site for beginners | | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [https://apps.ankiweb.net/ ANKI] | Spaced repetition flashcard program. See list below. | [https://en.m.wikipedia.org/wiki/Anki_(software) Aug 2017] | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ |- | Memrise | | | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| |- | StenoJig | | | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| |- | Stenomatic 9000 | | | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| |- | Steno Learner | | | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| |- | Fly | | | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| |- | Steno Typer | | | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| |- | |http://stenoknight.com/wiki/Practice | | | | | | | |} c8a343b62f956b6e4202119cf674c240b7dd3b47 MediaWiki:Sidebar 8 5 208 204 2024-02-12T21:48:57Z Rice 1 wikitext text/x-wiki * Plover ** mainpage|Main Page ** https://www.openstenoproject.org/plover|Plover Website (External) ** Beginner's_Guide|Beginner's Guide ** Installation_Guide|Installation Guide ** Configuration|Configuration ** Supported_Hardware|Supported Hardware ** Dictionary_Format|Dictionary Format ** Built-in_Tools|Built-in Tools ** Plugins|Plugins ** Invoke_Plover_from_the_Command_Line|Command Line ** Open_Steno_Project_Timeline|Open Steno Project Timeline ** Troubleshooting_Issues|Troubleshooting Issues * Stenography ** FAQ|FAQ ** Glossary|Glossary ** Learning_Stenography|Learning Stenography ** Brief_Ideas|Brief Ideas ** Software|Software ** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages ** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries * Miscellaneous ** The_Steno_Community|The Steno Community ** https://www.openstenoproject.org/demo/|In-Browser Demo ** Other_Pages|Other Pages * MediaWiki ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES d78bb1b0a8e827784916470ac0e3fa5301df3ecb Using Anki for Learning Stenography 0 30 209 140 2024-02-12T21:51:19Z Rice 1 add page wikitext text/x-wiki <span id="what-is-anki"></span> == What is Anki == Anki is a flashcard program that uses spaced repetition. The basic idea is that if the card is easy you will see it less often, and if the card is hard you will see it more often. Anki does not grade you automatically — you have full control. It can be useful for learning many things, and for steno people have used it for memorising briefs and theory rules. == Setting up Anki == # Download from here: https://apps.ankiweb.net/ # [[#making-your-own-deck|Make your own deck]] or use a [[#pre-made-decks|pre-made deck]] == Making your own deck == Making your own deck allows you to have greater control over the cards (e.g. what briefs) The most basic way is to use the default deck and add cards to it. &quot;Front&quot; and &quot;Back&quot; can be whatever you want, though most people put the translation on the front and the steno stroke on the back. === Custom Fields === Instead of just &quot;Front&quot; and &quot;Back&quot;, you might want more fields like &quot;Pseudo Steno&quot;, &quot;Stroke Diagram&quot;, &quot;Notes&quot; etc. # [https://docs.ankiweb.net/editing.html#adding-a-note-type Add a new note type] so that it won't interfere with anything else you might use Anki for # [https://docs.ankiweb.net/editing.html#customizing-fields Customise the fields] and add whatever you want # Add the new fields to the card template (see [[#custom-cards|custom cards]]) === Custom Cards === The default cards have the &quot;Front&quot; field, and when you answer it shows the &quot;Back&quot; field, as well as a reverse card. If you want to show more fields, you'll have to customise your card. See the [https://docs.ankiweb.net/templates/intro.html anki docs here], including the next few pages, for how to do this. Particular things that are useful for steno are: * [https://docs.ankiweb.net/templates/fields.html#text-to-speech Text to speech] <pre>{{tts en_US:Front}}</pre> Read out the text of the card, which is useful if you want to practice from dictation. You can also use the [https://ankiweb.net/shared/info/1436550454 AwesomeTTS] add-on for more voices. * [https://docs.ankiweb.net/templates/styling.html#field-styling Field Styling] in the card: <pre>&lt;span class=&quot;diagram&quot;&gt;{{Strokes}}&lt;/span&gt;</pre> in the styling: <syntaxhighlight lang="css">.diagram { font-family: "Stenodisplay Classic" }</syntaxhighlight> There are lots of ways you can style your fields, like making the notes smaller or colour coding your fields. The example here uses [https://github.com/Kaoffie/steno_font Kaoffie's Steno Font], which uses a font for the steno strokes to make it into a stroke diagram. You may want to [https://docs.ankiweb.net/templates/styling.html#installing-fonts install the font] into Anki if you can't install fonts on your computer or if you want a portable Anki deck. * [https://docs.ankiweb.net/templates/fields.html#checking-your-answer Typing input] <pre>{{type:Back}}</pre> Type out the field and when you turn the card over it will color code any differences. Some people like to check the translation field, some people like to turn off their dictionaries and check for the strokes. You might want a separate field for checking, since you may want prefix/suffix cards like &quot;{^ing}&quot; but what you type out is actually &quot;ing&quot;. Anki does not use this to pick the rating of the card. It is also possible to hide the text you are typing by adding the following to your styling. This might be useful if you want to focus on trusting your muscle memory. /* options are disc, circle, square, none */ -webkit-text-security: disc; == Pre-made Decks == * [https://github.com/rchern/steno-anki rchern/steno-anki] ** [https://www.openstenoproject.org/learn-plover/ Learn Plover!] lessons ** Top 10K Words ** Emily's [https://github.com/EPLHREU/emily-symbols Symbols] and [https://github.com/EPLHREU/emily-modifiers Modifiers] dictionaries ** Other community-contributed shared decks ** Script to generate cards from text file * [https://github.com/jladdjr/anki-decks jladdjr/anki-decks] ** Top 10,000 Project Gutenberg words ** Basic sounds * [https://ankiweb.net/shared/info/14548087 Steno order and Phonetic strokes] ** A small deck with cards on steno order and phonetic strokes * [https://github.com/percidae/Anki_Plover/releases/ percidae/Anki_Plover] ** Complete plover dictionary <span id="useful-anki-add-ons"></span> == Useful Anki Add-ons == [https://docs.ankiweb.net/addons.html Anki Add-ons] are third party extensions that add features to anki. To install them, go to Tools -&gt; Add-ons -&gt; Get Add-ons. * [https://ankiweb.net/shared/info/1765221856 Automatic Scoring] ** Automatically selects the difficulty of the card based on how long it took to answer it ** You still have to press &quot;enter&quot; to confirm, so you still have full control ** You may want to adjust the default time to something different. You can [https://docs.ankiweb.net/deck-options.html#general show the answer timer] and look at your [https://docs.ankiweb.net/stats.html#the-graphs answer button graph] to get an idea of what a reasonable time might be. ** Pairs well with [https://ankiweb.net/shared/info/1136455830 Advanced Review Bottom Bar] which makes it easier to see which button has been pre-selected. * [https://ankiweb.net/shared/info/2055492159 Anki Connect] ** Needed for some [[#useful-plover-extensions|useful plover extensions]] * [https://ankiweb.net/shared/info/754868802 Find Missing Words] ** Paste in a block of text and this will help you find words you don't have cards for * [https://ankiweb.net/shared/info/817108664 Anki Simulator] ** Simulates your reviews over time. Useful for choosing settings (e.g. number of new cards a day) that won't overwhelm you. (You can see how long you take per card that day in the Stats window or below the list of decks, and use this to see how many repetitions you want) * [https://ankiweb.net/shared/info/1686259334 Persistent Editor] (doesn't work with latest Anki version) ** Keeps the editing window open while reviewing (but hides the current card until you've answered it). Useful if you are using a pre-made deck and prefer different briefs to the ones that are there. * [https://ankiweb.net/shared/info/295889520 Mini Format Pack] ** Gives you more formatting options in the menu. Useful for making lists of alternative strokes, or other formatting * [https://ankiweb.net/shared/info/1436550454 AwesomeTTS] ** Gives you access to a range of TTS voices and human recorded voices (Forvo). * [https://github.com/antistic/anki-copy-selection-field Copy selection field] ** Lets you copy several selected entries in the Anki browse window, for example to copy into a practice tool like Steno Jig or Typey Type. <span id="useful-plover-extensions"></span> == Useful Plover Extensions == * [https://github.com/antistic/plover_cards Plover Cards] ** See previously typed words/phrases, sorted by various properties (e.g. last used, most used), choose your preferred stroke and add them into Anki. ** Command to quickly bring up the last X words you typed and their suggestions in an Anki &quot;Add Card&quot; window ** Requires [https://ankiweb.net/shared/info/2055492159 Anki Connect] * [https://github.com/fourshade/spectra_lexer Spectra Lexer] ** Analyzes strokes and generates stroke diagrams (click save). Useful for having stroke diagrams which explain the stroke. b7f910e7c503511aa02e78bec47a6f2bb7567333 Other pages 0 24 210 206 2024-02-12T21:52:04Z Rice 1 wikitext text/x-wiki * [[Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard]] * [[How to setup and use Plover with a Stentura 400SRT]] * [[Main Dictionary Changes]] * [[Measuring Your Real World Writing Speed]] * [[Open Steno Project Timeline]] * [[Stenotype Mnemonics for Beginners (English)]] * [[Using Anki for Learning Stenography]] 9c1f3025ae02b6e330874a2d20fbba8011d87d57 248 210 2024-02-19T18:59:38Z Rice 1 add updating v3 dictionaries page link wikitext text/x-wiki * [[Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard]] * [[How to setup and use Plover with a Stentura 400SRT]] * [[Main Dictionary Changes]] * [[Measuring Your Real World Writing Speed]] * [[Open Steno Project Timeline]] * [[Stenotype Mnemonics for Beginners (English)]] * [[Updating V3 Dictionaries]] * [[Using Anki for Learning Stenography]] 0df14dbdee6567431336bc85f4ee6d6941499ecb Dictionary format 0 11 211 126 2024-02-12T21:59:21Z Rice 1 add supported dictionary file formats wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote> == JSON and RTF/CRE == Plover supports two types of dictionaries: * '''JSON''' (the default and recommended format), and * '''RTF/CRE'''. RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote> === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> == Supported Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. === json === The standard Plover format. Described at [[Dictionary format]]. === rtf (aka CRE) === A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm . === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. [[Category:Plover]] f627481552e1641a584e047f09a069134ebef18b 212 211 2024-02-12T22:02:21Z Rice 1 /* Dictionary File Formats */ wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote> == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. Plover supports two types of dictionaries by default: * '''JSON''' (the default and recommended format), and * '''RTF/CRE'''. RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote> === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === Unsupported File Formats === ==== dct (aka Stentura, Jet, MDB, Microsoft Access) ==== These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. ==== sgdct (CaseCat) ==== CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] a9ebbd420eda7d6183bfeb424f192ea7de48a830 213 212 2024-02-12T22:02:55Z Rice 1 /* Unsupported File Formats */ wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote> == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. Plover supports two types of dictionaries by default: * '''JSON''' (the default and recommended format), and * '''RTF/CRE'''. RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote> === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === Other File Formats === ==== dct (aka Stentura, Jet, MDB, Microsoft Access) ==== These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. ==== sgdct (CaseCat) ==== CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] fafb0f2ffca5d4f2346b64bcc204ef35b7e26e53 224 213 2024-02-13T22:48:53Z Rice 1 /* Shortcut Key Names */ fix formatting wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote> == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. Plover supports two types of dictionaries by default: * '''JSON''' (the default and recommended format), and * '''RTF/CRE'''. RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote> === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === Other File Formats === ==== dct (aka Stentura, Jet, MDB, Microsoft Access) ==== These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. ==== sgdct (CaseCat) ==== CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] 19a238a307ea09a31d12ee2112245006bdf7f11e 241 224 2024-02-19T18:44:50Z Rice 1 /* Dictionary File Formats */ wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote> == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === json === The standard Plover format. Described at Dictionary format. === rtf (aka CRE) === A standard interchange format. Described at <nowiki>http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm</nowiki> . RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote> === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] dab15c75ccafcf6111165b25fcf5e808f5a967ee 242 241 2024-02-19T18:45:09Z Rice 1 /* rtf (aka CRE) */ wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote> == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === json === The standard Plover format. Described at Dictionary format. === rtf (aka CRE) === A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm . RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote> === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] f95610801d5945c2625f59187372b1e85f3ee9a7 243 242 2024-02-19T18:47:12Z Rice 1 /* Dictionary File Formats */ wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote> == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote> === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === json === The standard Plover format. Described at Dictionary format. === rtf (aka CRE) === A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm . RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications. === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] c7efc1f275172e5d8757fb2c1bca27ab94852afa MediaWiki:Common.css 8 6 214 70 2024-02-12T22:06:16Z Rice 1 css text/css /* CSS placed here will be applied to all skins */ img{ max-width: 100%; } .vector-menu-heading{ font-weight: bold; } 670aed0bca139ee27455e2e3d7c7fad9014bbf6b 215 214 2024-02-12T22:06:43Z Rice 1 css text/css /* CSS placed here will be applied to all skins */ img{ max-width: 100%; } .vector-menu-heading{ font-weight: bold!important; } 6b5674ae7357e661456567db5bb60f8cbf84916e 216 215 2024-02-12T22:07:03Z Rice 1 css text/css /* CSS placed here will be applied to all skins */ img{ max-width: 100%; } .vector-menu-heading{ font-weight: bold!important; color: black!important! } c806c9df53477d949538aa55c98a42ebc2b513ca 217 216 2024-02-12T22:08:26Z Rice 1 css text/css /* CSS placed here will be applied to all skins */ img{ max-width: 100%; } .vector-feature-zebra-design-disabled .vector-pinnable-element .vector-menu-heading, .vector-feature-zebra-design-disabled .vector-dropdown-content .vector-menu-heading{ font-weight: bold!important; color: black!important! } 8afc8c2de6b01fbe6b2c9c2a4e829fead2f9d67e 218 217 2024-02-12T22:08:49Z Rice 1 css text/css /* CSS placed here will be applied to all skins */ img{ max-width: 100%; } .vector-feature-zebra-design-disabled .vector-pinnable-element .vector-menu-heading, .vector-feature-zebra-design-disabled .vector-dropdown-content .vector-menu-heading{ font-weight: bold!important; color: black!important!; } ed51c46633984d59722e356ebe137a5813e15bee 219 218 2024-02-12T22:09:02Z Rice 1 css text/css /* CSS placed here will be applied to all skins */ img{ max-width: 100%; } .vector-menu-heading{ font-weight: bold!important; color: black!important!; } 18fd059d92eed4cc630dc0bff15530b8ed04d8d0 220 219 2024-02-12T22:09:43Z Rice 1 css text/css /* CSS placed here will be applied to all skins */ img{ max-width: 100%; } .vector-feature-zebra-design-disabled .vector-pinnable-element .vector-menu-heading, .vector-feature-zebra-design-disabled .vector-dropdown-content .vector-menu-heading { color: #000; font-weight: bold!important; } e862f301f74fc635edd47a68905420f16bea851b Plugins 0 45 221 185 2024-02-12T22:19:08Z Aerick 9 Tweak instructions for manually installing plugins wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below: If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>) ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI do the following steps: # Take note of the URL to the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> # Install git #* You may need to restart after installing git # Open a command-line window (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to manually add <code>git</code> to your path (search for guides along the lines of "how to add git to path windows/mac"). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string. For plugins on PyPI, this is the name of the package. For plugins in git repos, this will look something like <code>git+<nowiki>https://github.com/user/plugin</nowiki></code> (use the URL you found in the previous step). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> ----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. --> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 11196fff077b39eb798f62e1ecac16ece972fe8a 237 221 2024-02-15T16:02:28Z Aerick 9 add link to installing git, rephrase some parts wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below: If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>) ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI do the following steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string. For plugins on PyPI, this is the name of the package. For plugins in git repos, this will look something like <code>git+<nowiki>https://github.com/user/plugin</nowiki></code> (use the URL you found in the previous step). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> ----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. --> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] ed46531a6a5b19738980043ba9e9158fab6cb7dd 251 237 2024-02-20T05:35:48Z Aerick 9 add PyPI picture, rephrase wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> ----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. --> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 90bc3d5fc2a61a15950c7904362295c56442d2fc 253 251 2024-02-20T13:43:15Z Rice 1 wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === [[File:Installing pluginses.mp4|frameless]] * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> ----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. --> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 9c7ddee7c4ec46e5072934507a41cb8fedc7087c 254 253 2024-02-20T14:05:30Z Rice 1 wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> ----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. --> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 90bc3d5fc2a61a15950c7904362295c56442d2fc 256 254 2024-02-20T14:19:33Z Rice 1 wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == [[File:Plugins.mkv]] === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> ----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. --> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 48646ce8ba3a0335c198b349e1d88cc118dd704c 257 256 2024-02-20T14:22:45Z Rice 1 wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> ----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. --> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] ee0d2bb2d425eb5b3bd46fd4a61745ab9b3ab2e1 258 257 2024-02-20T14:33:09Z Aerick 9 /* Plugins not on PyPI */ wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== Open a PowerShell window in the same location as the Plover executable. Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for instructions on opening PowerShell in the right location and installing the plugin: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] c5089aa7229f20b9a5c29a15cd59c616089dd980 Talk:Configuration 1 64 222 2024-02-13T15:32:08Z Rice 1 Created page with "* This page should have sections for each of the configuration pages * Machine config section needs sub-sections for each machine type (at least the default machines)" wikitext text/x-wiki * This page should have sections for each of the configuration pages * Machine config section needs sub-sections for each machine type (at least the default machines) 78311495ab2b472d037670f3a7c53f1b45d09c32 223 222 2024-02-13T15:32:43Z Rice 1 wikitext text/x-wiki = TODO = * This page should have sections for each of the configuration pages * Machine config section needs sub-sections for each machine type (at least the default machines) 7e5e4ce409035a97034838720d03827259153f9f 233 223 2024-02-14T00:20:32Z Rice 1 Blanked the page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Planck.jpg 6 65 225 2024-02-13T22:56:19Z Rice 1 wikitext text/x-wiki Planck keyboard ddb57787c99f402ec35961cb389e15335f0c3b18 Supported hardware 0 10 226 134 2024-02-13T22:57:02Z Rice 1 Fix broken planck image wikitext text/x-wiki This page lists the machines known to work with Plover = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price |- | [https://nolltronics.com/product/ecosteno/ Ecosteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} [[Category:Plover]] 1fc9b1360c47d0fcd7c49de7326d1c38e684cdfa File:Configure Menu Location.png 6 66 227 2024-02-13T23:10:43Z Rice 1 wikitext text/x-wiki Configure Menu Location 194d05d233fa238db261b2d0bf71b0e4217e6159 Configuration 0 61 228 202 2024-02-13T23:22:17Z Rice 1 add interface section wikitext text/x-wiki This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI): [[File:Configure Menu Location.png|frameless|350x350px]] == Interface Tab == {| class="wikitable" |+ |'''Start minimized''' |Determines whether Plover is minimized or opened when the application starts. |- |'''Show paper tape''' |Determines whether Plover's paper tape window is open when the application starts. |- |'''Show suggestions''' |Determines whether Plover's suggestions window is open when the application starts. |- |'''Add translation dialog opacity''' |Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent. |- |'''Dictionaries display order''' |Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up. |} == Machine Tab == === Keymap === '''Configure ➪ Machine ➪ Keymap''' You can remap how Plover handles keys on your machine. The available options are affected by your system and the machine you are using. ==== Remapping Keys to Different Actions ==== The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.) The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled. ==== Disabling Keyboard Keys ==== Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for &quot;no operation&quot;) which will disable that key while Plover is running. [[File:Machine configuration window.png|frameless|747x747px]] ''The escape key will be disabled while Plover's output is enabled with the configuration above, where the &quot;Escape&quot; key has been mapped to the &quot;no-op&quot; Action.'' a441d416a7d6d76323592a5c12dc1a916f563e17 229 228 2024-02-14T00:04:09Z Rice 1 add sections for other machine types wikitext text/x-wiki This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI): [[File:Configure Menu Location.png|frameless|350x350px]] == Interface Tab == {| class="wikitable" |+ |'''Start minimized''' |Determines whether Plover is minimized or opened when the application starts. |- |'''Show paper tape''' |Determines whether Plover's paper tape window is open when the application starts. |- |'''Show suggestions''' |Determines whether Plover's suggestions window is open when the application starts. |- |'''Add translation dialog opacity''' |Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent. |- |'''Dictionaries display order''' |Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up. |} == Logging Tab == TODO == Machine Tab == The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options. === Machine: Keyboard === [[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]] '''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling. ==== Remapping Keys to Different Actions ==== The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.) The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled. ==== Disabling Keyboard Keys ==== Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for &quot;no operation&quot;) which will disable that key while Plover is running. [[File:Machine configuration window.png|frameless|747x747px]] ''The escape key will be disabled while Plover's output is enabled with the configuration above, where the &quot;Escape&quot; key has been mapped to the &quot;no-op&quot; Action.'' === Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura === ==== Options Section ==== TODO ===== Connection ===== Your machine will use a serial connection, which must be configured here. {| class="wikitable" |+ |'''Port''' |The serial port for serial connections. No default value. The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>. |- |'''Scan''' |Click to scan for connected devices |- |'''Baudrate''' |The baud rate for serial connections. 9600 by default. |} ===== Data Format ===== {| class="wikitable" |+ |'''Data bits''' |The number of bits in a byte for serial connections. 8 by default. |- |'''Stop bits''' |The number of stop bits for serial connections. 1 by default. |- |'''Parity''' |The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default. |} ===== Timeout ===== The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds). ==== Flow control ==== '''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default. '''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default. ==== Keymap Section ==== Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>. === Machine: Treal === TODO == Output Tab == TODO == Plugins Tab == TODO == System Tab == TODO 3e518377e8ce58760ee62361ef7d4979d4900304 230 229 2024-02-14T00:06:48Z Rice 1 /* Logging Tab */ wikitext text/x-wiki This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI): [[File:Configure Menu Location.png|frameless|350x350px]] == Interface Tab == {| class="wikitable" |+ |'''Start minimized''' |Determines whether Plover is minimized or opened when the application starts. |- |'''Show paper tape''' |Determines whether Plover's paper tape window is open when the application starts. |- |'''Show suggestions''' |Determines whether Plover's suggestions window is open when the application starts. |- |'''Add translation dialog opacity''' |Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent. |- |'''Dictionaries display order''' |Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up. |} == Logging Tab == {| class="wikitable" |+ |'''Log file''' |Sets the file path and file name of your log file |- |'''Log strokes''' |Determines whether Plover logs your strokes to your log file |- |'''Log translations''' |Determines whether Plover logs your translations to your log file |} == Machine Tab == The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options. === Machine: Keyboard === [[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]] '''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling. ==== Remapping Keys to Different Actions ==== The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.) The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled. ==== Disabling Keyboard Keys ==== Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for &quot;no operation&quot;) which will disable that key while Plover is running. [[File:Machine configuration window.png|frameless|747x747px]] ''The escape key will be disabled while Plover's output is enabled with the configuration above, where the &quot;Escape&quot; key has been mapped to the &quot;no-op&quot; Action.'' === Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura === ==== Options Section ==== TODO ===== Connection ===== Your machine will use a serial connection, which must be configured here. {| class="wikitable" |+ |'''Port''' |The serial port for serial connections. No default value. The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>. |- |'''Scan''' |Click to scan for connected devices |- |'''Baudrate''' |The baud rate for serial connections. 9600 by default. |} ===== Data Format ===== {| class="wikitable" |+ |'''Data bits''' |The number of bits in a byte for serial connections. 8 by default. |- |'''Stop bits''' |The number of stop bits for serial connections. 1 by default. |- |'''Parity''' |The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default. |} ===== Timeout ===== The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds). ==== Flow control ==== '''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default. '''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default. ==== Keymap Section ==== Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>. === Machine: Treal === TODO == Output Tab == TODO == Plugins Tab == TODO == System Tab == TODO fbab304b87a682cb80e76ebc4184e7dfa2dd4fc7 231 230 2024-02-14T00:07:38Z Rice 1 /* Options Section */ wikitext text/x-wiki This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI): [[File:Configure Menu Location.png|frameless|350x350px]] == Interface Tab == {| class="wikitable" |+ |'''Start minimized''' |Determines whether Plover is minimized or opened when the application starts. |- |'''Show paper tape''' |Determines whether Plover's paper tape window is open when the application starts. |- |'''Show suggestions''' |Determines whether Plover's suggestions window is open when the application starts. |- |'''Add translation dialog opacity''' |Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent. |- |'''Dictionaries display order''' |Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up. |} == Logging Tab == {| class="wikitable" |+ |'''Log file''' |Sets the file path and file name of your log file |- |'''Log strokes''' |Determines whether Plover logs your strokes to your log file |- |'''Log translations''' |Determines whether Plover logs your translations to your log file |} == Machine Tab == The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options. === Machine: Keyboard === [[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]] '''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling. ==== Remapping Keys to Different Actions ==== The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.) The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled. ==== Disabling Keyboard Keys ==== Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for &quot;no operation&quot;) which will disable that key while Plover is running. [[File:Machine configuration window.png|frameless|747x747px]] ''The escape key will be disabled while Plover's output is enabled with the configuration above, where the &quot;Escape&quot; key has been mapped to the &quot;no-op&quot; Action.'' === Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura === ==== Options Section ==== ===== Connection ===== Your machine will use a serial connection, which must be configured here. {| class="wikitable" |+ |'''Port''' |The serial port for serial connections. No default value. The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>. |- |'''Scan''' |Click to scan for connected devices |- |'''Baudrate''' |The baud rate for serial connections. 9600 by default. |} ===== Data Format ===== {| class="wikitable" |+ |'''Data bits''' |The number of bits in a byte for serial connections. 8 by default. |- |'''Stop bits''' |The number of stop bits for serial connections. 1 by default. |- |'''Parity''' |The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default. |} ===== Timeout ===== The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds). ==== Flow control ==== '''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default. '''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default. ==== Keymap Section ==== Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>. === Machine: Treal === TODO == Output Tab == TODO == Plugins Tab == TODO == System Tab == TODO ca903c34355064628bdb546b43da2521c5d1185e 232 231 2024-02-14T00:19:16Z Rice 1 /* Machine: Treal */ wikitext text/x-wiki This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI): [[File:Configure Menu Location.png|frameless|350x350px]] == Interface Tab == {| class="wikitable" |+ |'''Start minimized''' |Determines whether Plover is minimized or opened when the application starts. |- |'''Show paper tape''' |Determines whether Plover's paper tape window is open when the application starts. |- |'''Show suggestions''' |Determines whether Plover's suggestions window is open when the application starts. |- |'''Add translation dialog opacity''' |Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent. |- |'''Dictionaries display order''' |Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up. |} == Logging Tab == {| class="wikitable" |+ |'''Log file''' |Sets the file path and file name of your log file |- |'''Log strokes''' |Determines whether Plover logs your strokes to your log file |- |'''Log translations''' |Determines whether Plover logs your translations to your log file |} == Machine Tab == The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options. === Machine: Keyboard === [[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]] '''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling. ==== Remapping Keys to Different Actions ==== The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.) The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled. ==== Disabling Keyboard Keys ==== Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for &quot;no operation&quot;) which will disable that key while Plover is running. [[File:Machine configuration window.png|frameless|747x747px]] ''The escape key will be disabled while Plover's output is enabled with the configuration above, where the &quot;Escape&quot; key has been mapped to the &quot;no-op&quot; Action.'' === Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura === ==== Options Section ==== ===== Connection ===== Your machine will use a serial connection, which must be configured here. {| class="wikitable" |+ |'''Port''' |The serial port for serial connections. No default value. The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>. |- |'''Scan''' |Click to scan for connected devices |- |'''Baudrate''' |The baud rate for serial connections. 9600 by default. |} ===== Data Format ===== {| class="wikitable" |+ |'''Data bits''' |The number of bits in a byte for serial connections. 8 by default. |- |'''Stop bits''' |The number of stop bits for serial connections. 1 by default. |- |'''Parity''' |The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default. |} ===== Timeout ===== The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds). ==== Flow control ==== '''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default. '''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default. ==== Keymap Section ==== Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>. === Machine: Treal === ==== Keymap section ==== Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>. == Output Tab == {| class="wikitable" |+ |'''Enable at start''' |Determines whether Plover will start at system boot |- |'''Start attached''' |Determines whether Plover will start without a starting space |- |'''Start capitalized''' |Determines whether Plover will start with the first letter capitalized |- |'''Space placement''' |Determines whether spaces are prepended to your translations with '''Before Output''' or appended to your translations with '''After Output''' |- |'''Undo levels''' |Determines how many strokes can be undone with <code>*</code> |- |'''Key press delay (ms)''' |Determines how many milliseconds Plover will wait before outputting the translation of your strokes |} == Plugins Tab == Some plugins, such as <code>plover_clippy</code>or <code>plover_tapey_tape</code>will have configurations specific to the plugin here. == System Tab == Allows the user to switch to another stenography system. f8d1f106be8c966eb51eb519c89cb992790517ef 234 232 2024-02-14T00:22:03Z Rice 1 /* Logging Tab */ wikitext text/x-wiki This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI): [[File:Configure Menu Location.png|frameless|350x350px]] == Interface Tab == {| class="wikitable" |+ |'''Start minimized''' |Determines whether Plover is minimized or opened when the application starts. |- |'''Show paper tape''' |Determines whether Plover's paper tape window is open when the application starts. |- |'''Show suggestions''' |Determines whether Plover's suggestions window is open when the application starts. |- |'''Add translation dialog opacity''' |Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent. |- |'''Dictionaries display order''' |Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up. |} == Logging Tab == {| class="wikitable" |+ |'''Log file''' |Sets the file path and file name of your log file. Click the '''Browse''' button to set a path in your OS file browser. |- |'''Log strokes''' |Determines whether Plover logs your strokes to your log file |- |'''Log translations''' |Determines whether Plover logs your translations to your log file |} == Machine Tab == The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options. === Machine: Keyboard === [[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]] '''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling. ==== Remapping Keys to Different Actions ==== The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.) The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled. ==== Disabling Keyboard Keys ==== Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for &quot;no operation&quot;) which will disable that key while Plover is running. [[File:Machine configuration window.png|frameless|747x747px]] ''The escape key will be disabled while Plover's output is enabled with the configuration above, where the &quot;Escape&quot; key has been mapped to the &quot;no-op&quot; Action.'' === Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura === ==== Options Section ==== ===== Connection ===== Your machine will use a serial connection, which must be configured here. {| class="wikitable" |+ |'''Port''' |The serial port for serial connections. No default value. The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>. |- |'''Scan''' |Click to scan for connected devices |- |'''Baudrate''' |The baud rate for serial connections. 9600 by default. |} ===== Data Format ===== {| class="wikitable" |+ |'''Data bits''' |The number of bits in a byte for serial connections. 8 by default. |- |'''Stop bits''' |The number of stop bits for serial connections. 1 by default. |- |'''Parity''' |The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default. |} ===== Timeout ===== The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds). ==== Flow control ==== '''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default. '''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default. ==== Keymap Section ==== Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>. === Machine: Treal === ==== Keymap section ==== Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>. == Output Tab == {| class="wikitable" |+ |'''Enable at start''' |Determines whether Plover will start at system boot |- |'''Start attached''' |Determines whether Plover will start without a starting space |- |'''Start capitalized''' |Determines whether Plover will start with the first letter capitalized |- |'''Space placement''' |Determines whether spaces are prepended to your translations with '''Before Output''' or appended to your translations with '''After Output''' |- |'''Undo levels''' |Determines how many strokes can be undone with <code>*</code> |- |'''Key press delay (ms)''' |Determines how many milliseconds Plover will wait before outputting the translation of your strokes |} == Plugins Tab == Some plugins, such as <code>plover_clippy</code>or <code>plover_tapey_tape</code>will have configurations specific to the plugin here. == System Tab == Allows the user to switch to another stenography system. 6d4ec50c1ab875aaa8aa6d4de66681b112482a60 MediaWiki:Common.js 8 67 235 2024-02-14T00:47:56Z Rice 1 Created page with "/* Any JavaScript here will be loaded for all users on every page load. */ <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-EP373H3TLB"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-EP373H3TLB'); </script>" javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-EP373H3TLB"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-EP373H3TLB'); </script> bb1930d823259a8f350f92d987036d7612fa7839 236 235 2024-02-14T00:54:08Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ 7850587e5c59a0259c9c96f81797dcf059b3cac9 Installation Guide 0 8 238 149 2024-02-17T15:01:01Z Aerick 9 update download links to latest version wikitext text/x-wiki = Install Plover on Windows = Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] == Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] == Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> = Install Plover on Mac = <span id="download-plover-for-mac-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] == # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.] # Open <code>System Preferences &gt; Security &amp; Privacy &gt; Privacy &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. Plover is set up! You can run Plover like you would any other application. <blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span> === If you had previously uninstalled Plover or upgraded your system === Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span> = Install Plover on Linux = Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.<span id="download-the-plover-appimage-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] == To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> == Error relating to xcb == You may run into the following error when trying to run Plover: <blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem. </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> = Setting up my machine = Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> = Other installation methods = <span id="other-releases"></span> == Other releases == You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] == Homebrew Cask == If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> == Arch AUR package == Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> == Gentoo git ebuild == Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> = Troubleshooting = If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> = For developers: running from source = If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] 0a7e53bb9d66ff90f56a08a92a8cdedbc0717230 Plover Wiki 0 3 239 100 2024-02-19T18:04:34Z Rice 1 remove unnecessary word wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|left]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. 2c7b72c942cca79a0e3bd5475e20c9c63313cf35 Roadmap for Learning Stenography 0 68 240 2024-02-19T18:36:16Z Rice 1 Created page with "== Early Intermediate Learners (60 - 80 WPM) == '''Vocab Building:''' * StenoJig: ** Most used words exercise. When I reach near to 70 words per minute on an exercise, up the number of new words by 100. ** MonkeyType Quotes: short quotes and repeat until nearly 70 WPM with high accuracy ** Digits test: time to get good with the numbers! '''Speed Building:''' * YouTube: ** Practice dictation at various speeds ** Type along to songs * TypeRacer ** Compete :race_car: * S..." wikitext text/x-wiki == Early Intermediate Learners (60 - 80 WPM) == '''Vocab Building:''' * StenoJig: ** Most used words exercise. When I reach near to 70 words per minute on an exercise, up the number of new words by 100. ** MonkeyType Quotes: short quotes and repeat until nearly 70 WPM with high accuracy ** Digits test: time to get good with the numbers! '''Speed Building:''' * YouTube: ** Practice dictation at various speeds ** Type along to songs * TypeRacer ** Compete :race_car: * StenoJig: ** Learn Plover exercises to target specific -meme groups '''Dictionary Building:''' * User.json ** Define useful briefs for my lexicon ** Create Anki flashcards for briefs ab95cecf2ddc90ad3de9b0b9c844ff12998d533b File:Plover version check 1.png 6 69 244 2024-02-19T18:55:32Z Rice 1 wikitext text/x-wiki plover version check 1 2768d1467c8be204908898e490d5799b9bb4bd71 File:Open config folder gui.png 6 70 245 2024-02-19T18:56:28Z Rice 1 wikitext text/x-wiki open config folder gui 82877d51496633549d92cb6d614bf3666543b24e File:Local app data plover location windows.png 6 71 246 2024-02-19T18:57:24Z Rice 1 wikitext text/x-wiki local app data plover location windows ea70d4cea9db165cfd0845e73d0cd04a88e828db Updating V3 Dictionaries 0 72 247 2024-02-19T18:58:17Z Rice 1 Created page with "= Upgrading V3 Dictionaries = If you've installed Plover version 3 but have later switched to version 4, it is recommended you update the dictionaries to stay up to date with the current learning resources. Since Plover does not remove the dictionaries on uninstallation, it is necessary to do this manually. == Check your Plover version before continuing == [[File:Plover version check 1.png|frameless|678x678px]] To check if you've installed Plover version 3, the main P..." wikitext text/x-wiki = Upgrading V3 Dictionaries = If you've installed Plover version 3 but have later switched to version 4, it is recommended you update the dictionaries to stay up to date with the current learning resources. Since Plover does not remove the dictionaries on uninstallation, it is necessary to do this manually. == Check your Plover version before continuing == [[File:Plover version check 1.png|frameless|678x678px]] To check if you've installed Plover version 3, the main Plover window and the Plover Configuration window will look like the image above—with the main Plover window having a Configure and About button. Clicking the About button will reveal detailed information on the version of Plover you're running. If it looks like this, you'll have to [https://github.com/openstenoproject/plover/releases/latest download and install the latest version of Plover] before continuing. == Steps (recommended) == First ensure that Plover version 4 is installed. On later versions of Plover version 4, you can open Plover's config folder via the option in the file menu: [[File:Open config folder gui.png|frameless|650x650px]] In this folder you will find the dictionaries. Simply delete <code>main.json</code> and <code>commands.json</code>. You will then need to either restart Plover, or reconnect the machine so that Plover will replace it with its own version. Alternatively, you can also download an up-to-date version of the Plover dictionaries ([https://raw.githubusercontent.com/openstenoproject/plover/master/plover/assets/main.json main.json], [https://raw.githubusercontent.com/openstenoproject/plover/master/plover/assets/commands.json commands.json]) (either open the link and save the file, or right click the link and press "save link as"), then replace the old dictionaries in the config folder. You will then need to either restart Plover, or reconnect the machine to refresh the dictionaries. == Location of the config folder (advanced users) == The exact location of this folder depends on the operating system, and it is as follows. === Windows === <code>%LOCALAPPDATA%\plover\plover</code> In Windows 10 and later you can copy and paste the path <code>%LOCALAPPDATA%\plover\plover</code> into the Start menu search field and clicking Open. [[File:Local app data plover location windows.png|frameless|782x782px]] Alternatively, you can use the shortcut <code>Windows Logo + R</code> to open the Run dialog box and # Pasting the <code>%LOCALAPPDATA%\plover\plover</code> path described earlier into the Open field. # Click OK. For example the full path may be <code>C:\Users\<Username>\AppData\Local\plover\plover</code> after entering the <code>%LOCALAPPDATA%\plover\plover</code> location described above. === Mac === <code>~/Library/Application Support/plover</code> # On your Mac, from the Finder, do any of the following: #* ''Using your mouse or trackpad:'' Navigate to Go > Go to Folder... #* ''Using keyboard shortcuts:'' Reveal the "Go to Folder..." prompt by using the shortcut <code>Command-Shift-G</code>. # In the "Go to the folder:" field enter <code>~/Library/Application Support/plover</code> as the path. You may wish to copy and paste this path. # Click Go. # The Finder window should now reveal your plover configuration directory for the user you're currently logged into. The full path is equivalent to navigating to <code>/Users/<Username>/Library/Application Support/plover</code>. === Linux (AppImage) === ==== dev8 and before: ==== <code>~/.local/share/plover</code> <blockquote>NOTE: this location will still work for later versions of Plover due to backwards compatibility, as long as there's no <code>plover.cfg</code> file in the latter location.</blockquote> ==== dev9 and after: ==== <code>~/.config/plover</code> fc55b0c31ddf7b673dd4cb95e33b1b0db89cd759 Beginner's Guide 0 4 249 147 2024-02-19T20:57:17Z Rice 1 update old link wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]] * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno*] * [https://nolltronics.com/product/multisteno/ Multisteno*] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*] * [https://softhruf.love/products/soft-hruf-erl Splitography*] * [https://www.stenography.store/ Starboard*] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*] * [https://stenokeyboards.com/ The Uni*] (* = External link) More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. </blockquote> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] 5f8826ba02f8f0a1bfe10e55d53f43352e9f612c File:2024-02-19 21-15.png 6 73 250 2024-02-20T05:17:17Z Aerick 9 wikitext text/x-wiki plover-touchscreen-stenotype on PyPI bd99ff29c2463d5972f432803d194740c820a4c7 File:Installing pluginses.mp4 6 74 252 2024-02-20T13:42:47Z Rice 1 wikitext text/x-wiki installing pluginses 074e916a12e228d68e4fcd54e7fd03d4162dcf1b Plugins 0 45 259 258 2024-02-20T15:20:36Z Aerick 9 add Linux video for installing plugins wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to Tools → Plugins Manager† * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins † Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app # Select "Open file location" # In the folder, hold down Shift and right click # Select "Open PowerShell window here" Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] e4cf75a357c336d8a0cc9ece58b4c37420513de9 260 259 2024-02-20T15:33:56Z Aerick 9 /* Via the built-in Plugins Manager (recommended) */ wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to <code>Tools → Plugins Manager</code> * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins <blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app # Select "Open file location" # In the folder, hold down Shift and right click # Select "Open PowerShell window here" Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 937d87b7c68fea7c3a5fd4ec70b1d4109bbcc937 262 260 2024-02-20T15:57:04Z Aerick 9 Add types of plugins along with instructions for set up wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to <code>Tools → Plugins Manager</code> * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins <blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app # Select "Open file location" # In the folder, hold down Shift and right click # Select "Open PowerShell window here" Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Types of Plugins == === Dictionary Plugins === Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Machine Plugins === Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards. '''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.''' === System Plugins === System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean). '''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].''' === Command Plugins === Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. '''See the plugin's own documentation for setup details.''' === Macro and Meta Plugins === Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output. '''To use macro and meta plugins, see the plugin's own documentation for setting up entries.''' === GUI Plugins === GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Extension Plugins === Extension plugins can be used to execute arbitrary code. '''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] aa4501264a66bb736e8bf04de17d4adf636aa4de 265 262 2024-02-20T17:43:20Z Rice 1 testing videos wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to <code>Tools → Plugins Manager</code> * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins <blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app # Select "Open file location" # In the folder, hold down Shift and right click # Select "Open PowerShell window here" Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> [[File:Installing pluginses.mp4]] '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Types of Plugins == === Dictionary Plugins === Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Machine Plugins === Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards. '''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.''' === System Plugins === System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean). '''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].''' === Command Plugins === Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. '''See the plugin's own documentation for setup details.''' === Macro and Meta Plugins === Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output. '''To use macro and meta plugins, see the plugin's own documentation for setting up entries.''' === GUI Plugins === GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Extension Plugins === Extension plugins can be used to execute arbitrary code. '''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 33648b9102c14dc3bf760e548f08f17ecb48333d 266 265 2024-02-20T17:44:42Z Rice 1 Reverted edit by [[Special:Contributions/Rice|Rice]] ([[User talk:Rice|talk]]) to last revision by [[User:Aerick|Aerick]] wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to <code>Tools → Plugins Manager</code> * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins <blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app # Select "Open file location" # In the folder, hold down Shift and right click # Select "Open PowerShell window here" Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Types of Plugins == === Dictionary Plugins === Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Machine Plugins === Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards. '''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.''' === System Plugins === System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean). '''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].''' === Command Plugins === Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. '''See the plugin's own documentation for setup details.''' === Macro and Meta Plugins === Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output. '''To use macro and meta plugins, see the plugin's own documentation for setting up entries.''' === GUI Plugins === GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Extension Plugins === Extension plugins can be used to execute arbitrary code. '''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] aa4501264a66bb736e8bf04de17d4adf636aa4de Talk:Plugins 1 76 261 2024-02-20T15:35:01Z Aerick 9 Created page with "== Plugins manager usage screenshots == Right now, the instructions for using the plugins manager feels very busy. Should we remove the screenshots and replace them with a video?" wikitext text/x-wiki == Plugins manager usage screenshots == Right now, the instructions for using the plugins manager feels very busy. Should we remove the screenshots and replace them with a video? ff2b73917f31b26636223658c6b1637af1953149 Learning stenography 0 17 263 157 2024-02-20T17:02:36Z Aerick 9 add section on choosing a theory wikitext text/x-wiki == Suggested Learning Route == <blockquote>⚠️ This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.</blockquote> {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''[[#available-steno-theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].''' '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Available Steno Theories == A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. For hobbyists, there are three main theories to choose from. {| class="wikitable" |+ Freely available steno theories |- ! !! Description !! Learning resources |- | '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks |- | '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book |- | '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube |} <blockquote>'''NOTE:''' ideally, there would also be steno theories that take into account differences in dialects, but unfortunately, virtually all steno theories are based on General North American English.</blockquote> <!-- this section is written like an advertisement; it may need to be rewritten altogether /hj --> We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous which makes writing complicated words easier. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text). That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them. == Textbooks == These sites aim to teach you a steno theory, from the layout to the terminology to the strokes. === Plover theory textbooks === * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. === Lapwing textbook === * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out [[Plugins]] for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allow you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY] *** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] be30428d8d5d5a47a2dd90fdad9520b08ec34db8 264 263 2024-02-20T17:03:24Z Aerick 9 fix choose a theory link wikitext text/x-wiki == Suggested Learning Route == <blockquote>⚠️ This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.</blockquote> {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].''' '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Available Steno Theories == A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. For hobbyists, there are three main theories to choose from. {| class="wikitable" |+ Freely available steno theories |- ! !! Description !! Learning resources |- | '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks |- | '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book |- | '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube |} <blockquote>'''NOTE:''' ideally, there would also be steno theories that take into account differences in dialects, but unfortunately, virtually all steno theories are based on General North American English.</blockquote> <!-- this section is written like an advertisement; it may need to be rewritten altogether /hj --> We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous which makes writing complicated words easier. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text). That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them. == Textbooks == These sites aim to teach you a steno theory, from the layout to the terminology to the strokes. === Plover theory textbooks === * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. === Lapwing textbook === * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out [[Plugins]] for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allow you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY] *** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] 2e6d1238d9237b14a07bc7fce44d12bbefa5d018 286 264 2024-02-22T15:57:15Z Aerick 9 Info box wikitext text/x-wiki == Suggested Learning Route == {{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}} {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].''' '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Available Steno Theories == A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. For hobbyists, there are three main theories to choose from. {| class="wikitable" |+ Freely available steno theories |- ! !! Description !! Learning resources |- | '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks |- | '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book |- | '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube |} <blockquote>'''NOTE:''' ideally, there would also be steno theories that take into account differences in dialects, but unfortunately, virtually all steno theories are based on General North American English.</blockquote> <!-- this section is written like an advertisement; it may need to be rewritten altogether /hj --> We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous which makes writing complicated words easier. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text). That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them. == Textbooks == These sites aim to teach you a steno theory, from the layout to the terminology to the strokes. === Plover theory textbooks === * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. === Lapwing textbook === * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out [[Plugins]] for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allow you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY] *** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] e9947581e31d1685797d129d97d1d1eccb924b64 287 286 2024-02-22T16:03:49Z Aerick 9 reword theory selection, add info box wikitext text/x-wiki == Suggested Learning Route == {{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}} {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].''' '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Available Steno Theories == A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from. {| class="wikitable" |+ Freely available steno theories |- ! !! Description !! Learning resources |- | '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks |- | '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book |- | '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube |} {{Info|text=Unfortunately, all of these theories are based on General North American English.}} <!-- this section is written like an advertisement; it may need to be rewritten altogether /hj --> We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text). That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them. == Textbooks == These sites aim to teach you a steno theory, from the layout to the terminology to the strokes. === Plover theory textbooks === * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. === Lapwing textbook === * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out [[Plugins]] for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allow you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY] *** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] 50ab29b43ff4baf4375762e29cc9ce3f92ffc97b File:Dialog-warning.svg 6 77 267 2024-02-21T20:49:54Z Nat 11 Tango icon. wikitext text/x-wiki == Summary == Tango icon. aa3ab99eda63c178281633bd25e55feeb802e8c0 File:Dialog-information.svg 6 78 268 2024-02-21T20:53:44Z Nat 11 Tango icon. wikitext text/x-wiki == Summary == Tango icon. aa3ab99eda63c178281633bd25e55feeb802e8c0 Template:Box 10 79 269 2024-02-21T21:36:12Z Nat 11 Created page with "<div style="border:1px solid {{{border|#ccc}}};background:{{{background|transparent}}};padding:8px 4px;min-height:48px;position:relative">[[File:{{{image|Dialog-information.svg}}}|format=frameless|left|48px]] <div style="display:inline-block"> {{{text|Lorem ipsum dolor sit amet.}}} </div> </div>" wikitext text/x-wiki <div style="border:1px solid {{{border|#ccc}}};background:{{{background|transparent}}};padding:8px 4px;min-height:48px;position:relative">[[File:{{{image|Dialog-information.svg}}}|format=frameless|left|48px]] <div style="display:inline-block"> {{{text|Lorem ipsum dolor sit amet.}}} </div> </div> 6def41849f4d1be0188c6059c4adba5eb5ae65e5 274 269 2024-02-21T21:47:30Z Nat 11 wikitext text/x-wiki <div style="border:1px solid {{{border|#ccc}}};background:{{{background|transparent}}};padding:8px 4px;min-height:48px;position:relative">[[File:{{{image|Dialog-information.svg}}}|format=frameless|left|48px]] <div> {{{text|Lorem ipsum dolor sit amet wwww wwwww wwwww wwwww wwww.}}} </div> </div> 32235f9b6583eafafb5406c810fd9928adec74a3 275 274 2024-02-21T21:47:47Z Nat 11 wikitext text/x-wiki <div style="border:1px solid {{{border|#ccc}}};background:{{{background|transparent}}};padding:8px 4px;min-height:48px;position:relative">[[File:{{{image|Dialog-information.svg}}}|format=frameless|left|48px]] <div> {{{text|Lorem ipsum dolor sit amet.}}} </div> </div> f0a13c92b1e7dcb32d6aed58675898290db4c04d 276 275 2024-02-21T21:58:49Z Nat 11 wikitext text/x-wiki <div style="border:1px solid {{{border|#ccc}}};background:{{{background|transparent}}};padding:8px 4px 8px 56px;min-height:48px;position:relative"> <div style="position:absolute;left:4px;top:8px"> [[File:{{{image|Dialog-information.svg}}}|format=frameless|left|48px]] </div> {{{text|Lorem ipsum dolor sit amet.}}} </div> fa6e4b8ecf52a562d802a1a6087905d75b255bc3 Template:Info 10 80 270 2024-02-21T21:39:07Z Nat 11 Created page with "{{Box |text = {{{text|Lorem ipsum dolor sit amet.}}} |image = Dialog-information.svg |border = #8090ff |background = #eafaff }}" wikitext text/x-wiki {{Box |text = {{{text|Lorem ipsum dolor sit amet.}}} |image = Dialog-information.svg |border = #8090ff |background = #eafaff }} 64a5e500348da87e2c155f97c32ee098847e54f7 283 270 2024-02-21T22:15:18Z Nat 11 wikitext text/x-wiki {{Box |text = {{{text|Lorem ipsum dolor sit amet.}}} |image = Dialog-information.png |border = #8090ff |background = #eafaff }} 7fcbf6be67a2cb3827bdfde31644e298e4c5a0b6 Template:Warning 10 81 271 2024-02-21T21:39:48Z Nat 11 Created page with "{{Box |text = {{{text|Lorem ipsum dolor sit amet.}}} |image = Dialog-information.svg |border = #8090ff |background = #eafaff }}" wikitext text/x-wiki {{Box |text = {{{text|Lorem ipsum dolor sit amet.}}} |image = Dialog-information.svg |border = #8090ff |background = #eafaff }} 64a5e500348da87e2c155f97c32ee098847e54f7 272 271 2024-02-21T21:42:22Z Nat 11 wikitext text/x-wiki {{Box |text = {{{text|Lorem ipsum dolor sit amet.}}} |image = Dialog-warning.svg |border = #ff8040 |background = #fcffee }} c34b398e5485f3c196fd0a25509ce8e6cb5c5bb0 282 272 2024-02-21T22:14:49Z Nat 11 wikitext text/x-wiki {{Box |text = {{{text|Lorem ipsum dolor sit amet.}}} |image = Dialog-warning.png |border = #ff8040 |background = #fcffee }} be2a08e4a8ca7aa9b523f0e03f034057f6b48f5e Beginner's Guide 0 4 273 249 2024-02-21T21:43:42Z Nat 11 /* Write “Hello World” */ wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]] * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno*] * [https://nolltronics.com/product/multisteno/ Multisteno*] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*] * [https://softhruf.love/products/soft-hruf-erl Splitography*] * [https://www.stenography.store/ Starboard*] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*] * [https://stenokeyboards.com/ The Uni*] (* = External link) More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] b411beed2616e7a2da2c2589841318409b938677 277 273 2024-02-21T22:02:52Z Nat 11 /* Write “Hello World” */ wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]] * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno*] * [https://nolltronics.com/product/multisteno/ Multisteno*] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*] * [https://softhruf.love/products/soft-hruf-erl Splitography*] * [https://www.stenography.store/ Starboard*] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*] * [https://stenokeyboards.com/ The Uni*] (* = External link) More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] 08abb64c663e0734c0cd3f7b92f250358d1a86cc 296 277 2024-02-22T17:07:57Z Nat 11 /* Use a machine designed for use with Plover */ Notepad Key input delay mention wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]] * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] 3ad7bcb61d3293fcda8d6dd1d98ebc99dd85ff49 300 296 2024-02-23T18:53:41Z Nat 11 /* Download and Install Plover */ remove rocket emoji (why was that there in the beginning?) wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * [[Installation_Guide|Download and install Plover with the Installation Guide]] * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] d30c7393bad1cbe70f7e4a9be7b6567225ca8426 301 300 2024-02-23T18:54:16Z Nat 11 /* Download and Install Plover */ and embolden instead wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] 56cc56846980b19156ea826fc9c943c104b63aeb File:Dialog-information.png 6 82 278 2024-02-21T22:10:51Z Nat 11 Tango icon. wikitext text/x-wiki == Summary == Tango icon. aa3ab99eda63c178281633bd25e55feeb802e8c0 279 278 2024-02-21T22:11:36Z Nat 11 Nat moved page [[File:1B3841D7-7A46-4E4C-95E9-8F2C5F90729C.png]] to [[File:Dialog-information.png]]: Unrenamed title wikitext text/x-wiki == Summary == Tango icon. aa3ab99eda63c178281633bd25e55feeb802e8c0 File:1B3841D7-7A46-4E4C-95E9-8F2C5F90729C.png 6 83 280 2024-02-21T22:11:36Z Nat 11 Nat moved page [[File:1B3841D7-7A46-4E4C-95E9-8F2C5F90729C.png]] to [[File:Dialog-information.png]]: Unrenamed title wikitext text/x-wiki #REDIRECT [[File:Dialog-information.png]] 87ae156b713f66a33730591a86983d7395360272 File:Dialog-warning.png 6 84 281 2024-02-21T22:14:07Z Nat 11 Tango icon. wikitext text/x-wiki == Summary == Tango icon. aa3ab99eda63c178281633bd25e55feeb802e8c0 Installation Guide 0 8 284 238 2024-02-22T15:49:33Z Aerick 9 /* Install Plover on Linux */ wikitext text/x-wiki = Install Plover on Windows = Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] == Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] == Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> = Install Plover on Mac = <span id="download-plover-for-mac-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] == # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.] # Open <code>System Preferences &gt; Security &amp; Privacy &gt; Privacy &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. Plover is set up! You can run Plover like you would any other application. <blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span> === If you had previously uninstalled Plover or upgraded your system === Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span> = Install Plover on Linux = Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <span id="download-the-plover-appimage-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] == To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> == Error relating to xcb == You may run into the following error when trying to run Plover: <blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem. </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> = Setting up my machine = Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> = Other installation methods = <span id="other-releases"></span> == Other releases == You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] == Homebrew Cask == If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> == Arch AUR package == Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> == Gentoo git ebuild == Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> = Troubleshooting = If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> = For developers: running from source = If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] 2b3d47d7e9f3b2bc43313acef7be1fa14e857461 285 284 2024-02-22T15:50:22Z Aerick 9 /* Error relating to xcb */ wikitext text/x-wiki = Install Plover on Windows = Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] == Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] == Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> = Install Plover on Mac = <span id="download-plover-for-mac-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] == # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.] # Open <code>System Preferences &gt; Security &amp; Privacy &gt; Privacy &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. Plover is set up! You can run Plover like you would any other application. <blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span> === If you had previously uninstalled Plover or upgraded your system === Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span> = Install Plover on Linux = Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <span id="download-the-plover-appimage-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] == To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> == Error relating to xcb == You may run into the following error when trying to run Plover: <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> = Setting up my machine = Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> = Other installation methods = <span id="other-releases"></span> == Other releases == You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] == Homebrew Cask == If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> == Arch AUR package == Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> == Gentoo git ebuild == Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> = Troubleshooting = If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> = For developers: running from source = If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] 70bca8297fed72304ee95b791522adca3b31bb3a 297 285 2024-02-22T19:48:36Z Aerick 9 /* Download Plover for Mac here */ wikitext text/x-wiki = Install Plover on Windows = Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] == Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] == Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> = Install Plover on Mac = <span id="download-plover-for-mac-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] == # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder # Control-click on Plover, then choose <code>Open</code> from the shortcut menu # Open <code>System Preferences &gt; Security &amp; Privacy &gt; Privacy &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} Plover is set up! You can run Plover like you would any other application. <blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span> === If you had previously uninstalled Plover or upgraded your system === Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> = Install Plover on Linux = Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <span id="download-the-plover-appimage-here"></span> == [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] == To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> == Error relating to xcb == You may run into the following error when trying to run Plover: <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> = Setting up my machine = Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> = Other installation methods = <span id="other-releases"></span> == Other releases == You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] == Homebrew Cask == If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> == Arch AUR package == Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> == Gentoo git ebuild == Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> = Troubleshooting = If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> = For developers: running from source = If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] 7fac393acf0e05aacbe8c853b80bc11f73760731 Plover Wiki 0 3 288 239 2024-02-22T16:05:05Z Nat 11 moved Dolores to the right wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. 979ebbee37c1d40389f809d2bc41e9ac9a16e601 User:Nat 2 85 289 2024-02-22T16:37:09Z Nat 11 Created page with "<iframe src="https://example.com/"></iframe>" wikitext text/x-wiki <iframe src="https://example.com/"></iframe> 5fafaa86f9a4671ee9dc41273d715fa3483ae0d4 290 289 2024-02-22T16:37:40Z Nat 11 wikitext text/x-wiki <style>body { transform: scale(50%) }</style> 04b3561b83de1db1a86d9b3b9217206b887e9d66 291 290 2024-02-22T16:42:58Z Nat 11 wikitext text/x-wiki {{#time:%U}} 2633b06b08a0d901aa502ffe6d7de24d5e9e46c2 292 291 2024-02-22T16:43:11Z Nat 11 wikitext text/x-wiki {{#time: %U}} fe6d518baba930aefb0359b0746ba2a0b32f84c6 293 292 2024-02-22T16:57:04Z Nat 11 wikitext text/x-wiki <div style="font:72px 'Liberation Mono',Consolas,monospace;font-weight:bold"> <div style="display:inline-block;transform:skewY(10deg)">n</div><div style="display:inline-block;transform:skewY(-10deg)">a</div><div style="display:inline-block;transform:skewY(10deg)">t</div><div style="display:inline-block;transform:skewY(-10deg)">a</div><div style="display:inline-block;transform:skewY(10deg)">l</div><div style="display:inline-block;transform:skewY(-10deg)">i</div><div style="display:inline-block;transform:skewY(10deg)">e</div> </div> 854a615a6157588cbf201727badd2170d3ad7e14 File:Plover key delay.png 6 86 294 2024-02-22T17:04:57Z Nat 11 Demonstration of Plover's key delay setting wikitext text/x-wiki == Summary == Demonstration of Plover's key delay setting 1733408b7f9c1618fb39bdf5ed999b801fdf355b 295 294 2024-02-22T17:05:23Z Nat 11 /* Summary */ wikitext text/x-wiki == Summary == Demonstration of Plover's key delay setting (via Harri on Discord). 0795c1f3c5ca68ccb481330206f53162ebfa2f8d Troubleshooting issues 0 14 298 127 2024-02-23T18:44:43Z Nat 11 /* General */ Change blockquote to info wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line Invoke Plover from the command line]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate arpeggiating] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span> === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == If you’re running Plover 4.x and are missing the plugins manager or it’s not working as expected, you can try [https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins manually installing plugins]<span id="dictionary-issues"></span> == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == <span id="plover-does-not-run"></span> === Plover does not run === <ul> <li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p> <ul> <li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code> </li> <li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security &amp; Privacy &gt; Privacy &gt; Accessibility.</p> <p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li> <li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p> <p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p> <p>There are several ways you can try to fix them, from least destructive to most destructive:</p> <ol style="list-style-type: decimal;"> <li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li> <li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications &gt; Utilities &gt; Terminal.app), copy/paste the following command and press Enter:</p> <pre>sudo tccutil reset Accessibility</pre> <p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li> <li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p> <pre>sudo tccutil reset All</pre></li> <li><p>Alternatively, as a debugging step, [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line invoke Plover in the terminal] with the command</p> <pre>/Applications/Plover.app/Contents/MacOS/Plover</pre> <p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol> </li> <li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul> </li></ul><span id="unrecognized-keystrokes"></span> === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == <span id="missing-or-jumbled-output"></span> === Missing or jumbled output === * IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>).<span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span> === Linux dynamic keyboard layout switching is not working === * Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].<span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span> === Delayed/slow output when using gnome-shell and the keyboard machine === * It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. 0a77f7cbf5428a936b02f20b5bc9891f39422c02 The steno community 0 21 299 156 2024-02-23T18:48:39Z Nat 11 /* Open Steno Project */ embolden links and add emdashes wikitext text/x-wiki There are many places where you can meet the stenography community. As Plover, we are focused on the Open Steno Project's various outlets, but there are also classic closed steno resources online. == Open Steno Project == * '''[https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server] &mdash;''' Join the Discord server to chat with other steno-interested individuals. We welcome new people who may have very basic questions, looking for direction and help. We also welcome curious developers, stenography students, intermediate stenos, and professionals who are curious about Plover and its many uses compared with traditional software. Feel free also to drop by if you are looking to practice or find a new brief. * '''[https://www.facebook.com/groups/486062194804842/ Ploversteno Facebook Group]''' * '''[https://groups.google.com/forum/#!forum/ploversteno Ploversteno Google Group] &mdash;''' The Plover Google Group. Subscribe for updates and conversation. * '''[https://github.com/openstenoproject/plover/discussions GitHub Discussions]''' * '''[http://reddit.com/r/plover Unofficial Plover Subreddit: /r/Plover]''' == General Stenography == * Facebook: [https://www.facebook.com/groups/ECRSgroup/ Encouraging Court Reporting Students] * Twitter: There isn't much steno activity on Twitter, but maybe this list and this hashtag will help you get started. ** [https://twitter.com/morinted/lists/steno Steno List] ** [https://twitter.com/hashtag/stenolife?src=hash #stenolife] 4908f6a919ef2a5148553b406c405b74c7f5736e File:Office-calendar.png 6 87 302 2024-02-23T19:03:29Z Nat 11 Tango icon. wikitext text/x-wiki == Summary == Tango icon. aa3ab99eda63c178281633bd25e55feeb802e8c0 File:Gnome-appointment-missed.png 6 88 303 2024-02-23T19:13:41Z Nat 11 An icon from the [[https://www.gnome.org/ GNOME Project]] wikitext text/x-wiki == Summary == An icon from the [[https://www.gnome.org/ GNOME Project]] 23cd239d340ad02deede1ac2d2835903b0aca516 304 303 2024-02-23T19:13:54Z Nat 11 /* Summary */ wikitext text/x-wiki == Summary == An icon from the [https://www.gnome.org/ GNOME Project] 6719b1e2e00077cbf2d1f4fec5c6aee23eebdbb9 Template:Out of date 10 89 305 2024-02-23T19:14:20Z Nat 11 Created page with "{{Box |border = #ff9060 |background = #ffe0c0 |image = Gnome-appointment-missed.png |text = The contents of this {{{2|article}}} are '''out of date''', and need to be updated. <span style="font-size:.8em">''(dated {{{1}}})''</span> }}" wikitext text/x-wiki {{Box |border = #ff9060 |background = #ffe0c0 |image = Gnome-appointment-missed.png |text = The contents of this {{{2|article}}} are '''out of date''', and need to be updated. <span style="font-size:.8em">''(dated {{{1}}})''</span> }} d56bc157467ec06935e7e4fd74ddac8a8e899eff Dictionary format 0 11 306 243 2024-02-23T19:19:18Z Nat 11 /* Dictionary priority */ replace blockquote with info wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}} == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote> === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === json === The standard Plover format. Described at Dictionary format. === rtf (aka CRE) === A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm . RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications. === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] cf4ec14ce3782153d310b10d3c85015ef59c9e6c 307 306 2024-02-23T19:21:06Z Nat 11 /* Dictionary File Formats */ replace blockquote with info wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}} == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. {{{Note|text=there is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}}} === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === json === The standard Plover format. Described at Dictionary format. === rtf (aka CRE) === A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm . RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications. === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] cf918c61e4b93a6278fadfea5c1cd392b6600e95 308 307 2024-02-23T19:21:41Z Nat 11 /* Dictionary File Formats */ oops wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}} == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. {{{Info|text=there is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}}} === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === json === The standard Plover format. Described at Dictionary format. === rtf (aka CRE) === A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm . RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications. === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] fe200b7f50942012ee6bc12e81580dadb0eb8a35 Dictionary format 0 11 309 308 2024-02-23T19:25:34Z Nat 11 /* Dictionary File Formats */ i hate my job wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}} == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. {{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}} === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === json === The standard Plover format. Described at Dictionary format. === rtf (aka CRE) === A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm . RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications. === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. <code>{ "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" }</code> For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] cac2c83f06371eba672d75fbd1beef5d3081241e Test 0 90 310 2024-02-23T23:30:09Z Rice 1 Created page with "testing" wikitext text/x-wiki testing dc724af18fbdd4e59189f5fe768a5f8311527050 311 310 2024-02-23T23:30:24Z Rice 1 wikitext text/x-wiki testing testing 2 81d51f035bd55547e0623e0ef873fd29a9fe2142 312 311 2024-02-23T23:31:37Z Rice 1 Blanked the page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Plover Wiki 0 3 313 288 2024-02-24T05:55:04Z Nat 11 initial translation - partial wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılımıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar. Plover Windows, Linux ve macOS üzerinde çalışır. [[Beginner's Guide|'''Plover Acemi Kılavuzu: Plover'a Başlayın''']] == Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. d11939857ed4de3326c469f4d37fa069a0b969d6 314 313 2024-02-24T07:27:31Z Nat 11 tümen çeviri wikitext text/x-wiki = Plover Vikisi = [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar. Plover Windows, Linux ve macOS üzerinde çalışır. [[Beginner's Guide|'''Plover Acemi Kılavuzu: Plover'a Başlayın''']] == Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir. == Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. f015151c9f65eed77b07fb8b0210d6fd5fb41aea 315 314 2024-02-24T07:31:57Z Nat 11 Undo revision [[Special:Diff/314|314]] by [[Special:Contributions/Nat|Nat]] ([[User talk:Nat|talk]]) wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılımıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar. Plover Windows, Linux ve macOS üzerinde çalışır. [[Beginner's Guide|'''Plover Acemi Kılavuzu: Plover'a Başlayın''']] == Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. d11939857ed4de3326c469f4d37fa069a0b969d6 316 315 2024-02-24T07:32:23Z Nat 11 Undo revision [[Special:Diff/313|313]] by [[Special:Contributions/Nat|Nat]] ([[User talk:Nat|talk]]) wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. 979ebbee37c1d40389f809d2bc41e9ac9a16e601 320 316 2024-02-24T07:42:38Z Nat 11 mark for translation wikitext text/x-wiki <translate> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </translate> 2e83725b354b8301fc9224362f98161e2657999d 321 320 2024-02-24T07:43:54Z Nat 11 Marked this version for translation wikitext text/x-wiki <translate> <!--T:1--> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. <!--T:2--> Plover runs on Windows, macOS, and Linux. <!--T:3--> [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] <!--T:4--> == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. <!--T:5--> == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. <!--T:6--> [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </translate> 9afb9fb17284217cd248a2398b17c1999071d4b2 339 321 2024-02-24T09:30:42Z Nat 11 wikitext text/x-wiki <languages/> <translate> <!--T:1--> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. <!--T:2--> Plover runs on Windows, macOS, and Linux. <!--T:3--> [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] <!--T:4--> == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. <!--T:5--> == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. <!--T:6--> [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </translate> c372c5d999b13788ab01c6b63bf2e6324b108f8e 340 339 2024-02-24T09:36:15Z Nat 11 wikitext text/x-wiki <languages/> __NOEDITSECTION__ <translate> <!--T:1--> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. <!--T:2--> Plover runs on Windows, macOS, and Linux. <!--T:3--> [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] <!--T:4--> == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. <!--T:5--> == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. <!--T:6--> [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </translate> 43e1195819df0bd2a8668140e5f7006c93622c41 341 340 2024-02-24T09:40:49Z Nat 11 remove translate stuff - i am not having a good time wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. 979ebbee37c1d40389f809d2bc41e9ac9a16e601 Tr/Plover Vikisi 0 91 317 2024-02-24T07:35:36Z Nat 11 ilk çeviri wikitext text/x-wiki = Plover Vikisi = [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar. Plover Windows, Linux ve macOS üzerinde çalışır. [[Beginner's Guide|'''Plover Acemi Kılavuzu: Plover'a Başlayın''']] == Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir. == Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır. [[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz. d2192b76d2414178488a33d92d3e29923db4858e 318 317 2024-02-24T07:37:29Z Nat 11 düplike başlık kaldırıldı wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar. Plover Windows, Linux ve macOS üzerinde çalışır. [[Beginner's Guide|'''Plover Acemi Kılavuzu: Plover'a Başlayın''']] == Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir. == Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır. [[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz. 6c8de1c8e48520e7f585e65b9faed737cbfb314a 319 318 2024-02-24T07:39:29Z Nat 11 kılavuz linkini değiştir - ölü link, şu anlık wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar. Plover Windows, Linux ve macOS üzerinde çalışır. [[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']] == Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir. == Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır. [[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz. b80a60f93d69c0afa9d89051851f3d3f8caba62c 345 319 2024-02-24T12:31:22Z Nat 11 türkçe çeviri templatei ekle wikitext text/x-wiki {{Tr-translation|Plover Wiki}} [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar. Plover Windows, Linux ve macOS üzerinde çalışır. [[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']] == Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir. == Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır. [[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz. e8de728db5345ac19468999488eac23224549136 Translations:Plover Wiki/Page display title/en 1198 92 322 2024-02-24T07:43:54Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Plover Wiki b1d64585a964b839fdc202be8f0972b3c7d725cb Translations:Plover Wiki/1/en 1198 93 323 2024-02-24T07:43:55Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. 82e07d08c340b8d51e7cc4cdd89c70ac41185754 Translations:Plover Wiki/2/en 1198 94 324 2024-02-24T07:43:55Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Plover runs on Windows, macOS, and Linux. 7497c88568ce9d2eebbcaf7261a5fe64135e370a Translations:Plover Wiki/3/en 1198 95 325 2024-02-24T07:43:55Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] 0214e56a3ef2ddc96e898f0ce3ec217d068b39c1 Translations:Plover Wiki/4/en 1198 96 326 2024-02-24T07:43:55Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. fe682bfd8628f4ca3fc8dc06ac47beb7a79ed36f Translations:Plover Wiki/5/en 1198 97 327 2024-02-24T07:43:55Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. 3ed8ea3097341f4f42b1e9b5ee8e8da7e33e5cc2 Translations:Plover Wiki/6/en 1198 98 328 2024-02-24T07:43:55Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. 500ef81e8fccd80e1dbcd26813d502457ee9d256 Translations:Plover Wiki/Page display title/tr 1198 99 329 2024-02-24T07:44:11Z Nat 11 Created page with "Plover Vikisi" wikitext text/x-wiki Plover Vikisi 927ceea3a9c77c535cc1e4a3281dba8951bdcf0f Translations:Plover Wiki/1/tr 1198 100 330 2024-02-24T07:45:01Z Nat 11 Created page with "[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar." wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar. e59b1db548fce2a3b91b463ad72251675e7b87a3 Translations:Plover Wiki/2/tr 1198 101 331 2024-02-24T07:45:15Z Nat 11 Created page with "Plover Windows, Linux ve macOS üzerinde çalışır." wikitext text/x-wiki Plover Windows, Linux ve macOS üzerinde çalışır. 2f53929dbede8d0773a005a927559b1dc1c14135 Translations:Plover Wiki/3/tr 1198 102 332 2024-02-24T07:45:42Z Nat 11 Created page with "[[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]" wikitext text/x-wiki [[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']] ce9b05d4ac3c83b39bddfe94e33937bf26a4f0bc Translations:Plover Wiki/4/tr 1198 103 333 2024-02-24T07:46:01Z Nat 11 Created page with "== Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir." wikitext text/x-wiki == Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir. a02daa0140e60dbfd663c20d56ca3e6ecb7849ef Translations:Plover Wiki/5/tr 1198 104 334 2024-02-24T07:46:25Z Nat 11 Created page with "== Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır." wikitext text/x-wiki == Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır. 18cc4a31858c46cbcdba92e03c1fd916186cf273 Translations:Plover Wiki/6/tr 1198 105 335 2024-02-24T07:46:59Z Nat 11 Created page with "[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz." wikitext text/x-wiki [[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz. 8ce58c4f55206c20552304d32dd29d610cc09c13 Plover Wiki/en 0 107 337 2024-02-24T08:50:46Z FuzzyBot 12 Updating to match new version of source page wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. c32b2aed61b979407543448eb296e76c8ae0f941 User:Nat 2 85 338 293 2024-02-24T09:25:55Z Nat 11 wikitext text/x-wiki <div style="font:72px 'Liberation Mono',Consolas,monospace;font-weight:bold"> <div style="display:inline-block;transform:skewY(10deg)">n</div><div style="display:inline-block;transform:skewY(-10deg)">a</div><div style="display:inline-block;transform:skewY(10deg)">t</div><div style="display:inline-block;transform:skewY(-10deg)">a</div><div style="display:inline-block;transform:skewY(10deg)">l</div><div style="display:inline-block;transform:skewY(-10deg)">i</div><div style="display:inline-block;transform:skewY(10deg)">e</div> </div> It also seems I am an administrator here. 7b9ffc0ddb7ab192b006b50211d9dec3cf9ac140 File:Flag of Turkey.png 6 108 342 2024-02-24T10:13:25Z Nat 11 National flag of Turkey in 48x32px. Public domain. wikitext text/x-wiki == Summary == National flag of Turkey in 48x32px. Public domain. 68cc85a9dfbb4e4ca59ef19409788d0163c9c1bd Template:Tr-translation 10 109 343 2024-02-24T10:15:04Z Nat 11 Created page with "{{Box |image = Flag_of_Turkey.png |text = Bu sayfa, [[{{{1}}}]] başlıklı İngilizce sayfasından Türkçe'ye çevirilmiştir.'' }}" wikitext text/x-wiki {{Box |image = Flag_of_Turkey.png |text = Bu sayfa, [[{{{1}}}]] başlıklı İngilizce sayfasından Türkçe'ye çevirilmiştir.'' }} 13f6bd67895946781d8d2534f143cc62a339dd66 Tr/Yeni Başlayan Kılavuzu 0 110 344 2024-02-24T11:07:25Z Nat 11 ilk yarı çeviri wikitext text/x-wiki {{tr-translation|Beginner's Guide}} Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır. <span id="download-and-install-plover"></span> == Plover'ı Yükleyin ve Kurun == Plover '''Windows, Mac, and Linux''' üzerinde çalışır. * '''[[Tr/Kurulum-Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]''' * Takılırsanız [[Troubleshooting Issues|hata giderme kılavuzuna]] başvurun. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Uyumlu bir klavye ya da stenografi makinesi bağlayın == Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez. Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz: * [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]] * [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]] * [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]] * [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]] <span id="use-a-standard-qwerty-keyboard"></span> === Standart bir QWERTY klavyesi kullanma === Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama. <span id="arpeggiate"></span> ==== Arpej ==== Arpej seçeneğinin açık olduğu takdirde, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur. To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın. <span id="rolling-your-strokes"></span> ==== Vuruş yuvarlama ==== Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz. Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] 1d900d6d0e98e4389b71b6a8f055636749287a58 349 344 2024-02-24T12:56:10Z Nat 11 çeviri tam değil! wikitext text/x-wiki {{Tr-translation|Beginner's Guide}} {{Tr incomplete translation}} Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır. <span id="download-and-install-plover"></span> == Plover'ı Yükleyin ve Kurun == Plover '''Windows, Mac, and Linux''' üzerinde çalışır. * '''[[Tr/Kurulum-Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]''' * Takılırsanız [[Troubleshooting Issues|hata giderme kılavuzuna]] başvurun. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Uyumlu bir klavye ya da stenografi makinesi bağlayın == Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez. Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz: * [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]] * [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]] * [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]] * [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]] <span id="use-a-standard-qwerty-keyboard"></span> === Standart bir QWERTY klavyesi kullanma === Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama. <span id="arpeggiate"></span> ==== Arpej ==== Arpej seçeneğinin açık olduğu takdirde, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur. To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın. <span id="rolling-your-strokes"></span> ==== Vuruş yuvarlama ==== Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz. Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] 730377e3eddfb1c62dcb3cd2fd48bf3eca0eb2c7 351 349 2024-02-24T13:01:18Z Nat 11 /* Vuruş yuvarlama */ ingilizce paragraf kalıntısını kaldır wikitext text/x-wiki {{Tr-translation|Beginner's Guide}} {{Tr incomplete translation}} Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır. <span id="download-and-install-plover"></span> == Plover'ı Yükleyin ve Kurun == Plover '''Windows, Mac, and Linux''' üzerinde çalışır. * '''[[Tr/Kurulum-Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]''' * Takılırsanız [[Troubleshooting Issues|hata giderme kılavuzuna]] başvurun. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Uyumlu bir klavye ya da stenografi makinesi bağlayın == Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez. Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz: * [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]] * [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]] * [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]] * [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]] <span id="use-a-standard-qwerty-keyboard"></span> === Standart bir QWERTY klavyesi kullanma === Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama. <span id="arpeggiate"></span> ==== Arpej ==== Arpej seçeneğinin açık olduğu takdirde, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur. To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın. <span id="rolling-your-strokes"></span> ==== Vuruş yuvarlama ==== Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz. Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] d6d54a50bf2a80eb6a65817edfdad0c5d8ee4c5a 352 351 2024-02-24T13:27:13Z Nat 11 /* Arpej */ ingilizce paragraf kalıntısını kaldır wikitext text/x-wiki {{Tr-translation|Beginner's Guide}} {{Tr incomplete translation}} Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır. <span id="download-and-install-plover"></span> == Plover'ı Yükleyin ve Kurun == Plover '''Windows, Mac, and Linux''' üzerinde çalışır. * '''[[Tr/Kurulum-Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]''' * Takılırsanız [[Troubleshooting Issues|hata giderme kılavuzuna]] başvurun. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Uyumlu bir klavye ya da stenografi makinesi bağlayın == Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez. Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz: * [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]] * [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]] * [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]] * [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]] <span id="use-a-standard-qwerty-keyboard"></span> === Standart bir QWERTY klavyesi kullanma === Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama. <span id="arpeggiate"></span> ==== Arpej ==== Arpej seçeneğinin açık olduğu takdirde, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur. Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın. <span id="rolling-your-strokes"></span> ==== Vuruş yuvarlama ==== Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz. Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] 54e3b2f6e13a968a2c1098e54ff5aecbf58504d0 353 352 2024-02-24T13:30:07Z Nat 11 /* Plover'ı Yükleyin ve Kurun */ linkleri değiştir (şimdilik ölü) wikitext text/x-wiki {{Tr-translation|Beginner's Guide}} {{Tr incomplete translation}} Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır. <span id="download-and-install-plover"></span> == Plover'ı Yükleyin ve Kurun == Plover '''Windows, Mac, and Linux''' üzerinde çalışır. * '''[[Tr/Kurulum Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]''' * Takılırsanız [[Tr/Hata Giderme|hata giderme kılavuzuna]] başvurun. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Uyumlu bir klavye ya da stenografi makinesi bağlayın == Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez. Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz: * [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]] * [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]] * [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]] * [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]] <span id="use-a-standard-qwerty-keyboard"></span> === Standart bir QWERTY klavyesi kullanma === Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama. <span id="arpeggiate"></span> ==== Arpej ==== Arpej seçeneğinin açık olduğu takdirde, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur. Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın. <span id="rolling-your-strokes"></span> ==== Vuruş yuvarlama ==== Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz. Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] 97d021d2239be7bb4683479746cce322a46ac479 Tr/Terimler 0 111 346 2024-02-24T12:49:33Z Nat 11 ilk yarı çeviri wikitext text/x-wiki {{Tr-translation|Glossary}} Bu terimler dizini, steno topluluğunda karşınıza çıkabilecek terimler hakkında yardım edecektir. {{Warning|text=[[Glossary|Bu terimlerin orijinal halleri İngilizcedir]]. Buna ilişkin, Türkçe'de nasıl anılacaklarına dair düzgün bir konsensüs, hatta konsensüsü oluşturacak kadar büyük bir Türkçe steno topluluğu yoktur. Çevirmen(ler) tarafından en uygun görülen çeviriler yazılmış, yanlarına İngilizceleri de eklenmiştir. Dikkat edin.}} === Arpej (Arpeggiate) === Standart bir klavye ile bir [[Glossary#vuruş|stroke]] vuruşu tuşları tek tek girmeyi sağlayan bir Plover özelliği. Caps Lock ve Yapışkan Tuşlar'a benzer. Aktifleştirildiğinde, varsayılan arpej başlatma/sonlandırma tuşu boşluktur. Arpeje başlamak için boşluk tuşuna basın, ardından vuruşu oluşturan tuşlara basın ve, ve son olarak yeniden boşluk tuşuna basarak arpeji bitirip vuruşu gönderin. "Arpeggiate" kutucuğu, <code>Configure > Machine</code>'den (açılır listesinden "Keyboard" seçili halde) aşağıda görüldüğü gibi işaretlenmelidir. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. "Arpej" terimi bir müzik akorunun her notasını tek tek çalmak ile eşdeğerdir. Klavye tuşlarının nasıl steno tuşlarına uyarlandığına dair görseller için [[Learning Stenography#Cheat Sheets|kopya kağıtlarına]] bakabilirsiniz. === Kısaltma (Brief) === Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>FRIMT</code> (reads: "frimt" and takes only one stroke) === Akor (Chord) === A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Uyuşmazlık (Conflict) === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Kaydırma (Dragging) === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Mecburi (Mandatory) === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline. === Yanlış Vuruş (Misstroke) === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline (Anahat) === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Philly Kayması (Philly Shift) === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Gölgeleme (Shadowing) === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Yığma (Stacking) === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Steno Sözlüğü (Steno Dictionary) === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a <nowiki>[[steno theory|Glossary#steno-theory]]</nowiki>, this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Sırası (Steno Order) === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Vuruş (Stroke) === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the outline <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. === Steno Teorisi (Steno Theory) === A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally. === Ek katlama veya sıkıştırma (Suffix folding or tucking) === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Çevirmeyiş (Untranslate) === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Kelime Ucu (Word Boundary) === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Uzun Yazma (Write Out) === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". === Yazma (Writing) === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] f894ffc0db27d37094f312741b226e81251f74d5 348 346 2024-02-24T12:55:42Z Nat 11 çeviri tam değil! wikitext text/x-wiki {{Tr-translation|Glossary}} {{Tr incomplete translation}} Bu terimler dizini, steno topluluğunda karşınıza çıkabilecek terimler hakkında yardım edecektir. {{Warning|text=[[Glossary|Bu terimlerin orijinal halleri İngilizcedir]]. Buna ilişkin, Türkçe'de nasıl anılacaklarına dair düzgün bir konsensüs, hatta konsensüsü oluşturacak kadar büyük bir Türkçe steno topluluğu yoktur. Çevirmen(ler) tarafından en uygun görülen çeviriler yazılmış, yanlarına İngilizceleri de eklenmiştir. Dikkat edin.}} === Arpej (Arpeggiate) === Standart bir klavye ile bir [[Glossary#vuruş|stroke]] vuruşu tuşları tek tek girmeyi sağlayan bir Plover özelliği. Caps Lock ve Yapışkan Tuşlar'a benzer. Aktifleştirildiğinde, varsayılan arpej başlatma/sonlandırma tuşu boşluktur. Arpeje başlamak için boşluk tuşuna basın, ardından vuruşu oluşturan tuşlara basın ve, ve son olarak yeniden boşluk tuşuna basarak arpeji bitirip vuruşu gönderin. "Arpeggiate" kutucuğu, <code>Configure > Machine</code>'den (açılır listesinden "Keyboard" seçili halde) aşağıda görüldüğü gibi işaretlenmelidir. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. "Arpej" terimi bir müzik akorunun her notasını tek tek çalmak ile eşdeğerdir. Klavye tuşlarının nasıl steno tuşlarına uyarlandığına dair görseller için [[Learning Stenography#Cheat Sheets|kopya kağıtlarına]] bakabilirsiniz. === Kısaltma (Brief) === Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>FRIMT</code> (reads: "frimt" and takes only one stroke) === Akor (Chord) === A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Uyuşmazlık (Conflict) === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Kaydırma (Dragging) === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Mecburi (Mandatory) === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline. === Yanlış Vuruş (Misstroke) === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline (Anahat) === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Philly Kayması (Philly Shift) === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Gölgeleme (Shadowing) === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Yığma (Stacking) === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Steno Sözlüğü (Steno Dictionary) === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a <nowiki>[[steno theory|Glossary#steno-theory]]</nowiki>, this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Sırası (Steno Order) === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Vuruş (Stroke) === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the outline <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. === Steno Teorisi (Steno Theory) === A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally. === Ek katlama veya sıkıştırma (Suffix folding or tucking) === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Çevirmeyiş (Untranslate) === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Kelime Ucu (Word Boundary) === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Uzun Yazma (Write Out) === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". === Yazma (Writing) === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] 2743d0d97291c0d32bc6f47edff6f61c547c2dfe Template:Tr incomplete translation 10 112 347 2024-02-24T12:54:31Z Nat 11 Created page with "{{Warning|text=Bu sayfanın '''çevirisi tamamlanmamıştır'''. Tam gözükse bile bazı bölümlerde Türkçe'den çıkış ve girişler görebilirsiniz. Katkılar nezaketle karşılanır.}}" wikitext text/x-wiki {{Warning|text=Bu sayfanın '''çevirisi tamamlanmamıştır'''. Tam gözükse bile bazı bölümlerde Türkçe'den çıkış ve girişler görebilirsiniz. Katkılar nezaketle karşılanır.}} 7ea6ce11b0d1f7944a87578be772ab8eefb8a47f Tr/ 0 113 350 2024-02-24T12:59:07Z Nat 11 yönlendir: Tr/Plover Vikisi wikitext text/x-wiki #REDIRECT [[Tr/Plover Vikisi]] 4ace82073e9292fd20c8a6ea6b3b88a9f2046f41 Installation Guide 0 8 354 297 2024-02-24T13:37:41Z Nat 11 shift heading hierarchy wikitext text/x-wiki == Install Plover on Windows == Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder # Control-click on Plover, then choose <code>Open</code> from the shortcut menu # Open <code>System Preferences &gt; Security &amp; Privacy &gt; Privacy &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} Plover is set up! You can run Plover like you would any other application. {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === You may run into the following error when trying to run Plover: <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] ed2374924581952c661ea9beccf644b1611c32b9 User:Nat/Türkçe Steno Kaynakları/Hedefler 2 114 355 2024-02-24T15:45:50Z Nat 11 ilk düzenleme wikitext text/x-wiki == Hedefler == * ''Plover Wiki'' çevirisi. * ''Art of Chording'' çevirisi. * ''Learn Plover'' çevirisi? 5ab6433cc43959a559ee01dc6e6910e6b38f611b 356 355 2024-02-24T15:46:19Z Nat 11 Nat moved page [[Talk:Tr/Türkçe Steno Kaynakları/Hedefler]] to [[Tr/Türkçe Steno Kaynakları/Hedefler]]: Misspelled title wikitext text/x-wiki == Hedefler == * ''Plover Wiki'' çevirisi. * ''Art of Chording'' çevirisi. * ''Learn Plover'' çevirisi? 5ab6433cc43959a559ee01dc6e6910e6b38f611b 358 356 2024-02-24T15:47:07Z Nat 11 /* Hedefler */ başlığı kaldır wikitext text/x-wiki * ''Plover Wiki'' çevirisi. * ''Art of Chording'' çevirisi. * ''Learn Plover'' çevirisi? 8e52f9a4ea7c10b228aa83f74818d22da1a54983 359 358 2024-02-24T15:51:10Z Nat 11 Nat moved page [[Tr/Türkçe Steno Kaynakları/Hedefler]] to [[User:Nat/Türkçe Steno Kaynakları/Hedefler]] without leaving a redirect wikitext text/x-wiki * ''Plover Wiki'' çevirisi. * ''Art of Chording'' çevirisi. * ''Learn Plover'' çevirisi? 8e52f9a4ea7c10b228aa83f74818d22da1a54983 Talk:Tr/Türkçe Steno Kaynakları/Hedefler 1 115 357 2024-02-24T15:46:19Z Nat 11 Nat moved page [[Talk:Tr/Türkçe Steno Kaynakları/Hedefler]] to [[Tr/Türkçe Steno Kaynakları/Hedefler]]: Misspelled title wikitext text/x-wiki #REDIRECT [[Tr/Türkçe Steno Kaynakları/Hedefler]] 75ccc00836c6d2345c9653b338168b05ddd146f6 User:Nat/Türkçe Steno Kaynakları/Kaynaklar 2 116 360 2024-02-24T15:55:08Z Nat 11 Created page with "* [[Plover Wiki]] &raquo; [[Tr/Plover Vikisi|Plover Vikisi]] ''(yeni başlandı)''" wikitext text/x-wiki * [[Plover Wiki]] &raquo; [[Tr/Plover Vikisi|Plover Vikisi]] ''(yeni başlandı)'' bb0b07cdfd1aca7acf9a4105e9134d3f5fc0acc1 User:Nat/Türkçe Steno Kaynakları/Hedefler 2 114 361 359 2024-02-24T15:56:20Z Nat 11 wikitext text/x-wiki * ''Plover Wiki'' çevirisini tamamla. * ''Art of Chording'' çevirisine başla. * ''Learn Plover'' çevirisi başla. (?) 63284a1bdcd428f33ec7f6c60544e87bf36afff0 User:Nat/Türkçe Steno Kaynakları 2 117 362 2024-02-24T16:01:02Z Nat 11 Created page with "Bu sayfa, Türkçe'ye başlıca bizzat kendim çevirdiğim kaynakların bir derlemesidir. <div style="display:inline-block;width:50%;vertical-align:top"> <h2 style="text-align:center">Kaynaklar</h2> {{:{{FULLPAGENAME}}/Kaynaklar}} </div><div style="display:inline-block;width:50%;vertical-align:top"> <h2 style="text-align:center">Hedefler</h2> {{:{{FULLPAGENAME}}/Hedefler}} </div>" wikitext text/x-wiki Bu sayfa, Türkçe'ye başlıca bizzat kendim çevirdiğim kaynakların bir derlemesidir. <div style="display:inline-block;width:50%;vertical-align:top"> <h2 style="text-align:center">Kaynaklar</h2> {{:{{FULLPAGENAME}}/Kaynaklar}} </div><div style="display:inline-block;width:50%;vertical-align:top"> <h2 style="text-align:center">Hedefler</h2> {{:{{FULLPAGENAME}}/Hedefler}} </div> cd262204e3a35d84a8c7b51a7e522d696dd7e50f Tr/Art of Chording 0 118 363 2024-02-24T16:06:46Z Nat 11 ilk çeviri wikitext text/x-wiki ''[https://www.artofchording.com/ (orijinali Ted Morin tarafından, CC BY-SA 4.0)]'' Kendinize ücretsiz olarak stenografi öğretin. Steno ve Plover kullanarak bir klavyedekinden daha hızlı ve ergonomik yazın. <div style="text-align:center;font-size:1.5em">'''[[{{FULLPAGENAME}}/Başlangıç|Okumaya Başla &raquo;]]'''</div> 0645e0aa40d3230679aa71b7108d06bd8af168e6 371 363 2024-02-25T10:17:35Z Nat 11 not ekle wikitext text/x-wiki {{Info|text=İşbu yazı, '''İngilizce Plover steno teorisi''' için bir klavuzdur. Orijinali Ted Morin tarafından CC BY-SA 4.0 lisansı altında yayımlanmıştır.}} Kendinize ücretsiz olarak stenografi öğretin. Steno ve Plover kullanarak bir klavyedekinden daha hızlı ve ergonomik yazın. <div style="text-align:center;font-size:1.5em">'''[[{{FULLPAGENAME}}/Başlangıç|Okumaya Başla &raquo;]]'''</div> 8a85d595fbe46f6cd6baf5b281448e6664f44cf8 Tr/Art of Chording/Başlangıç 0 119 364 2024-02-24T16:16:41Z Nat 11 yönlendir: Tr/Art of Chording/Başlangıç/Hoşgeldiniz wikitext text/x-wiki #REDIRECT [[Tr/Art of Chording/Başlangıç/Hoşgeldiniz]] 044cf1fc4c8e2b63f840c145bd7589e1da8f39a0 Template:Tr/Geri ileri 10 120 365 2024-02-24T16:29:12Z Nat 11 Created page with "{|style="border:1px solid #aaa;background:#e5efff;width:100%;max-width:400px;margin:0 auto" |Geri<br />'''&laquo; [[{{{1}}}]]''' |style="text-align:right"|İleri<br />'''{{{2}}} &raquo;''' |}" wikitext text/x-wiki {|style="border:1px solid #aaa;background:#e5efff;width:100%;max-width:400px;margin:0 auto" |Geri<br />'''&laquo; [[{{{1}}}]]''' |style="text-align:right"|İleri<br />'''{{{2}}} &raquo;''' |} f16f5647ce59bd12554afc56f2ba81c73a4a5202 366 365 2024-02-24T16:32:36Z Nat 11 yanlış yazım düzeltildi wikitext text/x-wiki {|style="border:1px solid #aaa;background:#e5efff;width:100%;max-width:400px;margin:0 auto" |Geri<br />'''&laquo; {{{1}}}''' |style="text-align:right"|İleri<br />'''{{{2}}} &raquo;''' |} bf20e8776f6d8b2266f15f1e3842c0ad8f35fc9a Tr/Art of Chording/Başlangıç/Hoş geldiniz 0 121 367 2024-02-24T16:33:27Z Nat 11 ilk çeviri wikitext text/x-wiki == Hoş geldiniz == Art of Chording'e göz attığınız için teşekkürler. Bu kitabın hedefi, herkesin stenografi (kısaca ''steno'') öğrenebilmesini sağlamak. === Stenografi === Stenografi, bir bilgisayara yazmanın en hızlı yöntemidir. Mahkeme yazmanları, yakın 1800'lerden beri gerçek zamanlı olarak insan konuşmasının yazılı kayıtlarını tutmuşlardır. Bir steno makinesi, klavye kullanımının yerini tamamen alabilir. Bu kitap, hedefi ''stenografiyi herkese açmak'' olan [https://openstenoproject.org/ Open Steno Projesi'nin] bir parçasıdır. {{Tr/Geri ileri|[[Tr/Art of Chording|Anasayfa]]|[[Tr/Art of Chording/Başlangıç/Steno nasıl çalışır?|Steno nasıl çalışır?]]}} 4d3f147f30c6cd5b6e7ec02e70f415695146d49d Installation Guide 0 8 368 354 2024-02-25T04:30:27Z Aerick 9 Change system preferences to system settings wikitext text/x-wiki == Install Plover on Windows == Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder # Control-click on Plover, then choose <code>Open</code> from the shortcut menu # Open <code>System Settings &gt; Security &amp; Privacy &gt; Privacy &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} Plover is set up! You can run Plover like you would any other application. {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === You may run into the following error when trying to run Plover: <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] 36347bccd635e9b65a13932037cedf1c906061f0 369 368 2024-02-25T04:30:54Z Aerick 9 /* Download Plover for Mac here */ wikitext text/x-wiki == Install Plover on Windows == Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. # Open <code>System Settings &gt; Security &amp; Privacy &gt; Privacy &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} Plover is set up! You can run Plover like you would any other application. {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === You may run into the following error when trying to run Plover: <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] 6e03faa86d111a9b36ef6e7c2a5bd5574a4fedb2 370 369 2024-02-25T04:39:23Z Aerick 9 Update accessibility settings location wikitext text/x-wiki == Install Plover on Windows == Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} Plover is set up! You can run Plover like you would any other application. {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === You may run into the following error when trying to run Plover: <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] 4a84edc0d96445f12dadf1083e9ca2f1378d2dff Template:Tr çeviri sorunlu 10 122 372 2024-02-25T10:42:35Z Nat 11 Created page with "<sup>[çeviri sorunlu ([[{{TALKPAGENAME}}|tartış]])]</sup>" wikitext text/x-wiki <sup>[çeviri sorunlu ([[{{TALKPAGENAME}}|tartış]])]</sup> 1a4e5450c95dfaa1bd794e427372785253ea086e Tr/Kurulum Kılavuzu 0 123 373 2024-02-25T10:49:02Z Nat 11 çeviriyi geliştir wikitext text/x-wiki {{Tr-translation|Installation Guide}} {{Tr incomplete translation}} == Windows Üzerinde Plover Kurulumu == Plover kurulabilir ya da taşınabilir bir ZIP olarak doğrudan çalıştırılabilir. Eğer Plover'ı bir USB bellek üzerinden çalıştırıyorsanız ya da ana makinenin yetkileri kısıtlanmışsa, taşınabilir ZIP'i kullanmak daha avantajlı olabilir. Fakat başka tüm kullanım amaçları için, kurulum yöntemi önerilir. <span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Windows kurulum sihirbazını indirin] === Kurulum sihirbazını çalıştırın ve ekrandaki talimatları takip edin. [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 Windows Defender SmartScreen'i] baypas etmek için uygulamaya yetki atamanız gerekebilir. <span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Windows taşınabilir ZIP'i indirin] === Tüm arşivi Plover'ı çalıştırmak için kullanmak istediğiniz klasöre doğru çıkarın. <span id="install-plover-on-mac"></span> == Mac Üzerinde Plover Kurulumu == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Mac için Plover'ı indirin] === # <code>.dmg</code> dosyasını açın. # Yerleştirilen bellekten, <code>Plover.app</code> dosyasını <code>Applications</code> klasörüne aktarın. # <code>Applications</code>{{Tr çeviri sorunlu}} klasörünü açın. # Plover üzerine Kontrol tuşuna basarken tıklayın, ve kısayol menüsünden <code>Open</code>'ı{{Tr çeviri sorunlu}} seçin # <code>System Preferences &gt; Security &amp; Privacy &gt; Privacy &gt; Accessibility</code>'i{{Tr çeviri sorunlu}} açın. # <code>+</code> düğmesine basın, uygulama listenize gidin ve <code>Plover.app</code>'i seçin. {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} Ve Plover kuruldu! Plover'ı şimdi herhangi başka bir uygulama gibi çalıştırabilirsiniz. {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === You may run into the following error when trying to run Plover: <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] 470c3d465bc469edf843c7ffa622757165577d06 Plover Wiki 0 3 374 341 2024-02-25T14:26:26Z Astra 8 add translation tags wikitext text/x-wiki <translate> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </translate> 4d0cf4d30ff5a960c6235531a6d9e543636026e5 375 374 2024-02-25T14:27:05Z Astra 8 Marked this version for translation wikitext text/x-wiki <translate> <!--T:7--> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. <!--T:8--> Plover runs on Windows, macOS, and Linux. <!--T:9--> [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] <!--T:10--> == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. <!--T:11--> == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. <!--T:12--> [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </translate> 74cd4766f92dbed6332c188a2a80d1dbb7ae086f 395 375 2024-02-25T15:07:44Z Rice 1 wikitext text/x-wiki <languages/> <translate> <!--T:7--> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. <!--T:8--> Plover runs on Windows, macOS, and Linux. <!--T:9--> [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] <!--T:10--> == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. <!--T:11--> == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. <!--T:12--> [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </translate> 700154cc1d590b061725d9d82c69cf1d04111b9d Translations:Plover Wiki/7/en 1198 124 376 2024-02-25T14:28:58Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. 82e07d08c340b8d51e7cc4cdd89c70ac41185754 Translations:Plover Wiki/8/en 1198 125 377 2024-02-25T14:28:58Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Plover runs on Windows, macOS, and Linux. 7497c88568ce9d2eebbcaf7261a5fe64135e370a Translations:Plover Wiki/9/en 1198 126 378 2024-02-25T14:28:58Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] 0214e56a3ef2ddc96e898f0ce3ec217d068b39c1 Translations:Plover Wiki/10/en 1198 127 379 2024-02-25T14:28:58Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. fe682bfd8628f4ca3fc8dc06ac47beb7a79ed36f Translations:Plover Wiki/11/en 1198 128 380 2024-02-25T14:28:58Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. 3ed8ea3097341f4f42b1e9b5ee8e8da7e33e5cc2 Translations:Plover Wiki/12/en 1198 129 381 2024-02-25T14:28:58Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. 500ef81e8fccd80e1dbcd26813d502457ee9d256 Plover Wiki/en 0 107 382 337 2024-02-25T14:29:01Z FuzzyBot 12 Updating to match new version of source page wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. 979ebbee37c1d40389f809d2bc41e9ac9a16e601 Translations:Plover Wiki/7/fr 1198 130 383 2024-02-25T14:31:01Z Astra 8 Created page with "[[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]] Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute." wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]] Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute. da78347da8e62015361bfbd01ffc91ab0dd220a6 Translations:Plover Wiki/8/fr 1198 131 384 2024-02-25T14:31:20Z Astra 8 Created page with "Plover fonctionne sous Windows, macOS et Linux." wikitext text/x-wiki Plover fonctionne sous Windows, macOS et Linux. 8361584003b4df778ca226aeba843e89120364dd Plover Wiki/fr 0 132 385 2024-02-25T14:33:53Z Astra 8 Created page with "Plover fonctionne sous Windows, macOS et Linux." wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]] Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute. Plover fonctionne sous Windows, macOS et Linux. <div lang="en" dir="ltr" class="mw-content-ltr"> [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </div> 90fde1f4557e6ba8a6dbb914e0acbf2aea56e72a 393 385 2024-02-25T14:45:13Z Astra 8 Created page with "== Contribuer au Wiki == Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée." wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]] Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute. Plover fonctionne sous Windows, macOS et Linux. [[Beginner's Guide|'''Guide du débutant : Démarrez avec Plover''']] == Le projet Open Steno == Plover fait partie du [http://openstenoproject.org/ Open Steno Project]. Le projet Open Steno vise à ouvrir la sténographie au grand public. Le projet Open Steno s'est manifesté par des efforts en faveur de logiciels libres, de ressources d'apprentissage gratuites et d'options de claviers source ouverte. == Contribuer au Wiki == Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée. [[Spécial :ConfirmEmail|Confirmez votre adresse e-mail ici.]] Assurez-vous de vérifier votre dossier spam. cbcbcbf53f82a28eeeb1d457ca2b7476aa32f25c Translations:Plover Wiki/9/fr 1198 133 386 2024-02-25T14:34:41Z Astra 8 Created page with "[[Beginner's Guide|'''Guide du débutant : Démarrez avec Plover''']]" wikitext text/x-wiki [[Beginner's Guide|'''Guide du débutant : Démarrez avec Plover''']] dd1089dd4fc0be94830004c34770a297532c5a64 Translations:Plover Wiki/11/fr 1198 135 388 2024-02-25T14:37:38Z Astra 8 Created page with "== Contribuer au Wiki == Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée." wikitext text/x-wiki == Contribuer au Wiki == Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée. 66651fce351cb5e320a06d7ac5fb3c837be338ee Translations:Plover Wiki/12/fr 1198 136 389 2024-02-25T14:37:52Z Astra 8 Created page with "[[Spécial :ConfirmEmail|Confirmez votre adresse e-mail ici.]] Assurez-vous de vérifier votre dossier spam." wikitext text/x-wiki [[Spécial :ConfirmEmail|Confirmez votre adresse e-mail ici.]] Assurez-vous de vérifier votre dossier spam. b48c2a07672f0cbdbc67b974328cad6bb9634bb8 Translations:Plover Wiki/Page display title/fr 1198 137 391 2024-02-25T14:38:57Z Astra 8 Created page with "Wiki Plover" wikitext text/x-wiki Wiki Plover 086ab4d8a1b47ee50618b4d15982f8c091061311 Plover Wiki/tr 0 138 392 2024-02-25T14:44:38Z FuzzyBot 12 Updating to match new version of source page wikitext text/x-wiki <div lang="en" dir="ltr" class="mw-content-ltr"> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Plover runs on Windows, macOS, and Linux. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </div> a3511e476ec1864235cd7885c1c3018113d2a1fe 402 392 2024-02-25T15:10:42Z Nat 11 Created page with "[[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]" wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar. Plover Windows, Linux ve macOS üzerinde çalışır. [[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']] == Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir. == Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır. [[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz. e222a39acf346b722e96a2375181f56574772dfd User:Astra 2 139 394 2024-02-25T14:56:47Z Astra 8 Created page with "i do, in fact, exist" wikitext text/x-wiki i do, in fact, exist ac99f77cc46b8b495c877b500951874be2e8bc9d Translations:Plover Wiki/7/tr 1198 140 396 2024-02-25T15:09:35Z Nat 11 Created page with "[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar." wikitext text/x-wiki [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar. e59b1db548fce2a3b91b463ad72251675e7b87a3 Translations:Plover Wiki/8/tr 1198 141 397 2024-02-25T15:09:39Z Nat 11 Created page with "Plover Windows, Linux ve macOS üzerinde çalışır." wikitext text/x-wiki Plover Windows, Linux ve macOS üzerinde çalışır. 2f53929dbede8d0773a005a927559b1dc1c14135 Translations:Plover Wiki/9/tr 1198 142 398 2024-02-25T15:09:44Z Nat 11 Created page with "[[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]" wikitext text/x-wiki [[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']] ce9b05d4ac3c83b39bddfe94e33937bf26a4f0bc Translations:Plover Wiki/10/tr 1198 143 399 2024-02-25T15:09:49Z Nat 11 Created page with "== Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir." wikitext text/x-wiki == Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir. a02daa0140e60dbfd663c20d56ca3e6ecb7849ef Translations:Plover Wiki/11/tr 1198 144 400 2024-02-25T15:09:58Z Nat 11 Created page with "== Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır." wikitext text/x-wiki == Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır. 18cc4a31858c46cbcdba92e03c1fd916186cf273 Translations:Plover Wiki/12/tr 1198 145 401 2024-02-25T15:10:05Z Nat 11 Created page with "[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz." wikitext text/x-wiki [[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz. 8ce58c4f55206c20552304d32dd29d610cc09c13 Beginner's Guide 0 4 403 301 2024-02-25T15:12:21Z Nat 11 wrap in <translate> wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <languages /> <translate> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] </translate> 8b6ba35f712364e5475d7c56cc63353c93e15e9a 404 403 2024-02-25T15:13:39Z Nat 11 Marked this version for translation wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <languages /> <translate> <!--T:1--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:2--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:3--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:4--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:5--> [[Category:Plover]] </translate> af995b7fbd8739b15af740865f87e3b71cb5dba0 Translations:Beginner's Guide/Page display title/en 1198 146 405 2024-02-25T15:14:03Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Beginner's Guide 7e2f928b206ffd6c256181a6066a6731b801e247 Translations:Beginner's Guide/1/en 1198 147 406 2024-02-25T15:14:03Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. bf4c4922e52584b4e228acd32756f33039437524 Translations:Beginner's Guide/2/en 1198 148 407 2024-02-25T15:14:03Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. cf5bfcde7424f5bcfd8adc0a1918983dfd79a714 Translations:Beginner's Guide/3/en 1198 149 408 2024-02-25T15:14:03Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki '''We recommend learning either Plover theory or Lapwing theory.''' 3b3fa6138ec422cca7f53090c2c031205b41979e Translations:Beginner's Guide/4/en 1198 150 409 2024-02-25T15:14:03Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. 72ef471faa08dac31704a5f573b28e505098c8ca Translations:Beginner's Guide/5/en 1198 151 410 2024-02-25T15:14:03Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki [[Category:Plover]] 19217f70dd61937300e5a44a34bca8d3ef06ff85 Beginner's Guide/en 0 152 411 2024-02-25T15:14:22Z FuzzyBot 12 Updating to match new version of source page wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <languages /> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] fea6c493e4d4792e87f59b806686562f79f47157 Beginner's Guide 0 4 412 404 2024-02-25T15:15:15Z Nat 11 wrap in <translate> '''correctly''' wikitext text/x-wiki <languages /> <translate> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] </translate> 1e8097e30b5c87c35c46d3415caa309c7586d8a5 413 412 2024-02-25T15:16:33Z Nat 11 Marked this version for translation wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. <!--T:18--> https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <!--T:20--> <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <!--T:31--> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === <!--T:32--> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: <!--T:33--> * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] <!--T:34--> You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling machines designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <!--T:44--> <span id="keyboard"></span> === Keyboard === <!--T:45--> By default, Plover will use your keyboard as its input device. <!--T:46--> # Run Plover. # Click the Output: '''Enable''' radio button. <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. <!--T:50--> This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:64--> <span id="stenography-machine"></span> === Stenography machine === <!--T:65--> <!--T:66--> Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: <!--T:67--> # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. <!--T:68--> See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:78--> [[Category:Plover]] </translate> 80bf0646f16a712ae877239914736db8edd50dcb Translations:Beginner's Guide/6/en 1198 153 414 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. 4e65bb79464ee4de1088c759cb3fa9ef83dd50a2 Translations:Beginner's Guide/7/en 1198 154 415 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="download-and-install-plover"></span> == Download and Install Plover == 4f50514be06cb3a9dfd396147c65f6b8459995b6 Translations:Beginner's Guide/8/en 1198 155 416 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Plover works on '''Windows, Mac, and Linux'''. 9e789d605f7fe2159872b4b80b88cc6171d41564 Translations:Beginner's Guide/9/en 1198 156 417 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. 9725c6d11f471439955c7c3c2accbf2749f8517d Translations:Beginner's Guide/10/en 1198 157 418 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> 313003212b252f26824e0f6925c35b8a8d36d3ae Translations:Beginner's Guide/11/en 1198 158 419 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki == Connect a compatible keyboard or stenography machine == febe12379c54388c86a488bd580567bfa47d0988 Translations:Beginner's Guide/12/en 1198 159 420 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. f6b343adb68acd55c96d2c52bcd265f676fb513c Translations:Beginner's Guide/13/en 1198 160 421 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] ad2c1d7f1ab1b25f6470a2a90c7c31232e4fa443 Translations:Beginner's Guide/14/en 1198 161 422 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === 68fa775bef6702ba2091b942bad9ced226507c8b Translations:Beginner's Guide/15/en 1198 162 423 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. a26fa095cf270b5ff98e47e00e01ff2a8197c291 Translations:Beginner's Guide/16/en 1198 163 424 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="arpeggiate"></span> ==== Arpeggiate ==== 781e36e377efb0f6169e86fe0068b564e73ec579 Translations:Beginner's Guide/17/en 1198 164 425 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. 34a81902290eafb583efd381e15672c5b83c67ef Translations:Beginner's Guide/18/en 1198 165 426 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif 03a358a8e83539c8e772bee7b92251f788bc0299 Translations:Beginner's Guide/19/en 1198 166 427 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. 802ac87c0cdb0199d5b750acff17a3b6e134e07e Translations:Beginner's Guide/20/en 1198 167 428 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== e163c8d7e284a4524152940fb29db906c65a4a35 Translations:Beginner's Guide/21/en 1198 168 429 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. 194f0851ecb2b6161e5090e94055c1ee581f8745 Translations:Beginner's Guide/22/en 1198 169 430 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif 86514ed06cb8dbb3f2cdcd1fbc0583076ef331f8 Translations:Beginner's Guide/23/en 1198 170 431 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. e267ca65be9f6f526549af848410bc804cd27fd7 Translations:Beginner's Guide/24/en 1198 171 432 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === c6ebb27d42194ad4244b0a6a41ba268ac6caac36 Translations:Beginner's Guide/25/en 1198 172 433 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. 7c90702f484e0a8393e25afa52caa21438716c5e Translations:Beginner's Guide/26/en 1198 173 434 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. bed3037d007744c65db60288febed76d8c1904c1 Translations:Beginner's Guide/27/en 1198 174 435 2024-02-25T15:16:33Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. 50bdae83ac0d45f6bf59fb453044eb99c4e7e956 Translations:Beginner's Guide/28/en 1198 175 436 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== 976a68f118a6f89b615d81bae8fdc05bf8dd5cfa Translations:Beginner's Guide/29/en 1198 176 437 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). 462bb7b632e7740a4f04a4e331d0a2860ff66283 Translations:Beginner's Guide/30/en 1198 177 438 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] 840f20564509c67b295508e114bd31af5282fcf8 Translations:Beginner's Guide/31/en 1198 178 439 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === 53a1639278b7d022e8ac1cd8744b2b6db2ff7c30 Translations:Beginner's Guide/32/en 1198 179 440 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: 76db256b8b8b4e8be6082470343797bd254f2ab3 Translations:Beginner's Guide/33/en 1198 180 441 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] ffa8bda8115a0e043f88312b71d7e1021833991f Translations:Beginner's Guide/34/en 1198 181 442 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. cf425f3c49d8d485b8532b1694a56c03b2181750 Translations:Beginner's Guide/35/en 1198 182 443 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === 21eee5aa82386968c164c06f956cf7ae950d01c3 Translations:Beginner's Guide/36/en 1198 183 444 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Various steno enthusiasts are making and selling machines designed for use with Plover: ddf3eb0dba4ce636ac4ac7a122c56f3ae0c1059f Translations:Beginner's Guide/37/en 1198 184 445 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] cb9823bbe13d17b538617e387f3289a0cd29268d Translations:Beginner's Guide/38/en 1198 185 446 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. ac4f711e91485def1aa77c0e47966ec17fcf85b8 Translations:Beginner's Guide/39/en 1198 186 447 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === 9155f30d259023c2830e0d4d174a46a1ad7ffd69 Translations:Beginner's Guide/40/en 1198 187 448 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. c0375a2943dd5aee26499e8a41ef42898ba4d4fb Translations:Beginner's Guide/41/en 1198 188 449 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki See the [[Supported Hardware]] page for a list of supported professional stenography machines. 580a6fdba393d35c517fe16d5ae9ecf644003a80 Translations:Beginner's Guide/42/en 1198 189 450 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="confirm-its-working"></span> == Confirm it’s working == 9b17498d93ee908543c1ab29e188e224f7124455 Translations:Beginner's Guide/43/en 1198 190 451 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. c31f1400948d74440759411e8ae011cfd462ba75 Translations:Beginner's Guide/44/en 1198 191 452 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="keyboard"></span> === Keyboard === f7c6281928a937f47cbe27c9dc60d4ef09f694da Translations:Beginner's Guide/45/en 1198 192 453 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki By default, Plover will use your keyboard as its input device. e33fd9bc6d7b3474e8dc30f25a59e3a100555c74 Translations:Beginner's Guide/46/en 1198 193 454 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki # Run Plover. # Click the Output: '''Enable''' radio button. 3924808e9d9e538b55c34fb3ebebd4d52117b387 Translations:Beginner's Guide/47/en 1198 194 455 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="write-hello-world"></span> === Write “Hello World” === 3f64b5f99edaec2af37bcf4a21d0968a3500f57b Translations:Beginner's Guide/48/en 1198 195 456 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. ed7229a1b983280b81b862b63e4b83cd97a35909 Translations:Beginner's Guide/49/en 1198 196 457 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. 60effca4f8d8115638194e1a8b33c206ae6d78f8 Translations:Beginner's Guide/50/en 1198 197 458 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} b2aa95ebfcfe9d763da7916b1d2f32412120afea Translations:Beginner's Guide/51/en 1198 198 459 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. 04494a88663a34982ec2b3c4e1c141717b53d22a Translations:Beginner's Guide/52/en 1198 199 460 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} 2e06381327953a834113c4ab1bf8f1efc091b1b2 Translations:Beginner's Guide/53/en 1198 200 461 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO 67863f924dbb89f51dbb4849052d106e644254b0 Translations:Beginner's Guide/54/en 1198 201 462 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="practice-sentences"></span> ==== Practice sentences ==== 00568c580cb06eaf820d8fa05ba62c0b91d55603 Translations:Beginner's Guide/55/en 1198 202 463 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. 4a5909e6f282be2c774b9911ea4ad603094e2b74 Translations:Beginner's Guide/56/en 1198 203 464 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== e55a3e5aa75b4e267c2dd0767e7e64acf7cbae70 Translations:Beginner's Guide/57/en 1198 204 465 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Your fingers should be curled slightly, so you press the keys using the tips of your fingers. 0eb83f193da761066142e50f33e276aec05fa977 Translations:Beginner's Guide/58/en 1198 205 466 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <div class="figure"> 6e32644952fb9991d115705b02f905c9707dcc46 Translations:Beginner's Guide/59/en 1198 206 467 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png f848c87b347966fd535b4f704656d71f046aa919 Translations:Beginner's Guide/60/en 1198 207 468 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. 3b62c04081b75972d10efd5e64d19bc5304d3824 Translations:Beginner's Guide/61/en 1198 208 469 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} 01235f8fbdac0227e7d4d19977a9a756481f9634 Translations:Beginner's Guide/62/en 1198 209 470 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki See also: 371a87eafb4de078ff674d69a5a89c186532eb49 Translations:Beginner's Guide/63/en 1198 210 471 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] 2e165642928752a378cdd319d3cfcc26a4d0b2ee Translations:Beginner's Guide/64/en 1198 211 472 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="stenography-machine"></span> 6cd588d46e8929cb96585ddafc4fdfe1dacd10b1 Translations:Beginner's Guide/65/en 1198 212 473 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki === Stenography machine === f44863f794bc4e229d175ed1178c02df0fe88890 Translations:Beginner's Guide/66/en 1198 213 474 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: 15cfde51b49ebf1d809de49f80f6269697bc6b6e Translations:Beginner's Guide/67/en 1198 214 475 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. a311765fe3df7eb2da96c741aecca33b5b1146f3 Translations:Beginner's Guide/68/en 1198 215 476 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. 27f39725f6d5072a6a8f18a6edc27e4defe6720d Translations:Beginner's Guide/69/en 1198 216 477 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="practice-and-learn"></span> == Practice and learn == b9626f26957552108ef4cb3bbf052c5eed98ef18 Translations:Beginner's Guide/70/en 1198 217 478 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. ce797dacf0aa2b80b385d751b612918a1f35fe63 Translations:Beginner's Guide/71/en 1198 218 479 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === 51c7f725f414735ce7d15f3eea96668c82635d72 Translations:Beginner's Guide/72/en 1198 219 480 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki There are many steno theories that encompass the rules you use to convert words to steno strokes. 814778b13e8db4a26c23e259c7894195c85e2b59 Translations:Beginner's Guide/73/en 1198 220 481 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. 2416007245d1d82566b0897d6c9e410dd05dcaa6 Translations:Beginner's Guide/74/en 1198 221 482 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. bf4c4922e52584b4e228acd32756f33039437524 Translations:Beginner's Guide/75/en 1198 222 483 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. cf5bfcde7424f5bcfd8adc0a1918983dfd79a714 Translations:Beginner's Guide/76/en 1198 223 484 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki '''We recommend learning either Plover theory or Lapwing theory.''' 3b3fa6138ec422cca7f53090c2c031205b41979e Translations:Beginner's Guide/77/en 1198 224 485 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. 72ef471faa08dac31704a5f573b28e505098c8ca Translations:Beginner's Guide/78/en 1198 225 486 2024-02-25T15:16:34Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki [[Category:Plover]] 19217f70dd61937300e5a44a34bca8d3ef06ff85 Beginner's Guide/en 0 152 487 411 2024-02-25T15:17:05Z FuzzyBot 12 Updating to match new version of source page wikitext text/x-wiki <languages /> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <span id="download-and-install-plover"></span> == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <span id="arpeggiate"></span> ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. <span id="confirm-its-working"></span> == Confirm it’s working == Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <span id="keyboard"></span> === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. <span id="write-hello-world"></span> === Write “Hello World” === To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <span id="practice-sentences"></span> ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <div class="figure"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <span id="stenography-machine"></span> === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <span id="practice-and-learn"></span> == Practice and learn == It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. [[Category:Plover]] 656866ab90ff5191633b690c237ea486c2690c22 Translations:Beginner's Guide/Page display title/tr 1198 226 488 2024-02-25T15:17:20Z Nat 11 Created page with "Yeni Başlayan Kılavuzu" wikitext text/x-wiki Yeni Başlayan Kılavuzu db2d279f0e0bcb472a6b453db1ed4e569b2a59ae Translations:Beginner's Guide/6/tr 1198 227 489 2024-02-25T15:17:27Z Nat 11 Created page with "Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır." wikitext text/x-wiki Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır. c44d7f8800722a7e9cd2c51adaedee76fd6a8d14 Translations:Beginner's Guide/7/tr 1198 228 490 2024-02-25T15:17:41Z Nat 11 Created page with " <span id="download-and-install-plover"></span> == Plover'ı Yükleyin ve Kurun ==" wikitext text/x-wiki <span id="download-and-install-plover"></span> == Plover'ı Yükleyin ve Kurun == 9e43c055dcf3798917bf7d38a5b365e27475eb00 Translations:Beginner's Guide/8/tr 1198 229 491 2024-02-25T15:17:45Z Nat 11 Created page with " Plover '''Windows, Mac, and Linux''' üzerinde çalışır." wikitext text/x-wiki Plover '''Windows, Mac, and Linux''' üzerinde çalışır. 3c54a513693ae71df2e56e2a62996ea528abeb32 Translations:Beginner's Guide/9/tr 1198 230 492 2024-02-25T15:17:52Z Nat 11 Created page with "* '''[[Tr/Kurulum Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]''' * Takılırsanız [[Tr/Hata Giderme|hata giderme kılavuzuna]] başvurun." wikitext text/x-wiki * '''[[Tr/Kurulum Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]''' * Takılırsanız [[Tr/Hata Giderme|hata giderme kılavuzuna]] başvurun. c9df84e165395ba07524a8cb2ae73b15054608a3 Translations:Beginner's Guide/10/tr 1198 231 493 2024-02-25T15:17:56Z Nat 11 Created page with "<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>" wikitext text/x-wiki <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> 313003212b252f26824e0f6925c35b8a8d36d3ae Translations:Beginner's Guide/11/tr 1198 232 494 2024-02-25T15:18:00Z Nat 11 Created page with "== Uyumlu bir klavye ya da stenografi makinesi bağlayın ==" wikitext text/x-wiki == Uyumlu bir klavye ya da stenografi makinesi bağlayın == 432519937744b258d76045b8687a40e0535a5b21 Translations:Beginner's Guide/12/tr 1198 233 495 2024-02-25T15:18:05Z Nat 11 Created page with "Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kola..." wikitext text/x-wiki Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez. 9a7bd7c46e919b58210697cd6e4bafb8ccb327b9 Translations:Beginner's Guide/13/tr 1198 234 496 2024-02-25T15:18:13Z Nat 11 Created page with "Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz: * [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]] * [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]] * #use-a-machine-designed-for-use-with-plover|Plover ile kull..." wikitext text/x-wiki Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz: * [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]] * [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]] * [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]] * [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]] 3f8385319f713a15877bbedcf1ea56358011758e Translations:Beginner's Guide/14/tr 1198 235 497 2024-02-25T15:18:19Z Nat 11 Created page with "<span id="use-a-standard-qwerty-keyboard"></span> === Standart bir QWERTY klavyesi kullanma ===" wikitext text/x-wiki <span id="use-a-standard-qwerty-keyboard"></span> === Standart bir QWERTY klavyesi kullanma === 31321b8303e65ff8d4aee45514b0c156430c8a32 Translations:Beginner's Guide/15/tr 1198 236 498 2024-02-25T15:18:26Z Nat 11 Created page with "Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama." wikitext text/x-wiki Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama. 54aa9c92bf3ad5c7b3aa355bf0f154cf70230a83 Translations:Beginner's Guide/16/tr 1198 237 499 2024-02-25T15:18:30Z Nat 11 Created page with "<span id="arpeggiate"></span> ==== Arpej ====" wikitext text/x-wiki <span id="arpeggiate"></span> ==== Arpej ==== 8b97921e73d137910c8a12f89b560021d13e3a0f Translations:Beginner's Guide/17/tr 1198 238 500 2024-02-25T15:18:48Z Nat 11 Created page with "Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur." wikitext text/x-wiki Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur. 76570b90df874514df16f0df2a088f3e9baeb3e6 Translations:Beginner's Guide/18/tr 1198 239 501 2024-02-25T15:18:54Z Nat 11 Created page with "https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif" wikitext text/x-wiki https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif 03a358a8e83539c8e772bee7b92251f788bc0299 Beginner's Guide/tr 0 240 502 2024-02-25T15:18:57Z Nat 11 Created page with "<span id="use-a-standard-qwerty-keyboard"></span> === Standart bir QWERTY klavyesi kullanma ===" wikitext text/x-wiki <languages /> Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır. <span id="download-and-install-plover"></span> == Plover'ı Yükleyin ve Kurun == Plover '''Windows, Mac, and Linux''' üzerinde çalışır. * '''[[Tr/Kurulum Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]''' * Takılırsanız [[Tr/Hata Giderme|hata giderme kılavuzuna]] başvurun. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> <span id="Connect_a_compatible_keyboard_or_stenography_machine"></span> == Uyumlu bir klavye ya da stenografi makinesi bağlayın == Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez. Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz: * [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]] * [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]] * [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]] * [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]] <span id="use-a-standard-qwerty-keyboard"></span> === Standart bir QWERTY klavyesi kullanma === Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama. <span id="arpeggiate"></span> ==== Arpej ==== Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif <div lang="en" dir="ltr" class="mw-content-ltr"> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Various steno enthusiasts are making and selling machines designed for use with Plover: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> See the [[Supported Hardware]] page for a list of supported professional stenography machines. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="confirm-its-working"></span> == Confirm it’s working == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="keyboard"></span> === Keyboard === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> By default, Plover will use your keyboard as its input device. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> # Run Plover. # Click the Output: '''Enable''' radio button. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="write-hello-world"></span> === Write “Hello World” === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="practice-sentences"></span> ==== Practice sentences ==== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <div class="figure"> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> <div lang="en" dir="ltr" class="mw-content-ltr"> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> See also: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="stenography-machine"></span> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Stenography machine === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="practice-and-learn"></span> == Practice and learn == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> There are many steno theories that encompass the rules you use to convert words to steno strokes. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> '''We recommend learning either Plover theory or Lapwing theory.''' </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Category:Plover]] </div> 84227d284c01484f664f7bb3e86cdbf744ed8628 506 502 2024-02-25T15:19:17Z Nat 11 Created page with "<span id="rolling-your-strokes"></span> ==== Vuruş yuvarlama ====" wikitext text/x-wiki <languages /> Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır. <span id="download-and-install-plover"></span> == Plover'ı Yükleyin ve Kurun == Plover '''Windows, Mac, and Linux''' üzerinde çalışır. * '''[[Tr/Kurulum Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]''' * Takılırsanız [[Tr/Hata Giderme|hata giderme kılavuzuna]] başvurun. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> <span id="Connect_a_compatible_keyboard_or_stenography_machine"></span> == Uyumlu bir klavye ya da stenografi makinesi bağlayın == Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez. Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz: * [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]] * [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]] * [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]] * [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]] <span id="use-a-standard-qwerty-keyboard"></span> === Standart bir QWERTY klavyesi kullanma === Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama. <span id="arpeggiate"></span> ==== Arpej ==== Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın. <span id="rolling-your-strokes"></span> ==== Vuruş yuvarlama ==== Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz. <div lang="en" dir="ltr" class="mw-content-ltr"> https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Various steno enthusiasts are making and selling machines designed for use with Plover: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> See the [[Supported Hardware]] page for a list of supported professional stenography machines. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="confirm-its-working"></span> == Confirm it’s working == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="keyboard"></span> === Keyboard === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> By default, Plover will use your keyboard as its input device. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> # Run Plover. # Click the Output: '''Enable''' radio button. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="write-hello-world"></span> === Write “Hello World” === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="practice-sentences"></span> ==== Practice sentences ==== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <div class="figure"> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> <div lang="en" dir="ltr" class="mw-content-ltr"> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> See also: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="stenography-machine"></span> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Stenography machine === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="practice-and-learn"></span> == Practice and learn == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> There are many steno theories that encompass the rules you use to convert words to steno strokes. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> '''We recommend learning either Plover theory or Lapwing theory.''' </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Category:Plover]] </div> a1316c2dc36e1859fdff7e4444925e5a3cacd582 509 506 2024-02-25T15:21:00Z Nat 11 Created page with "Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur." wikitext text/x-wiki <languages /> Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır. <span id="download-and-install-plover"></span> == Plover'ı Yükleyin ve Kurun == Plover '''Windows, Mac, and Linux''' üzerinde çalışır. * '''[[Tr/Kurulum Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]''' * Takılırsanız [[Tr/Hata Giderme|hata giderme kılavuzuna]] başvurun. <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> <span id="Connect_a_compatible_keyboard_or_stenography_machine"></span> == Uyumlu bir klavye ya da stenografi makinesi bağlayın == Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez. Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz: * [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]] * [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]] * [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]] * [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]] <span id="use-a-standard-qwerty-keyboard"></span> === Standart bir QWERTY klavyesi kullanma === Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama. <span id="arpeggiate"></span> ==== Arpej ==== Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur. https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın. <span id="rolling-your-strokes"></span> ==== Vuruş yuvarlama ==== Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]]. <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Various steno enthusiasts are making and selling machines designed for use with Plover: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> See the [[Supported Hardware]] page for a list of supported professional stenography machines. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="confirm-its-working"></span> == Confirm it’s working == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="keyboard"></span> === Keyboard === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> By default, Plover will use your keyboard as its input device. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> # Run Plover. # Click the Output: '''Enable''' radio button. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="write-hello-world"></span> === Write “Hello World” === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="practice-sentences"></span> ==== Practice sentences ==== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <div class="figure"> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png </div> <div lang="en" dir="ltr" class="mw-content-ltr"> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> See also: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="stenography-machine"></span> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Stenography machine === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="practice-and-learn"></span> == Practice and learn == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> There are many steno theories that encompass the rules you use to convert words to steno strokes. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> '''We recommend learning either Plover theory or Lapwing theory.''' </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Category:Plover]] </div> b2ee68113abd0f75bea3ef74c7f76d74e2208b4a Translations:Beginner's Guide/19/tr 1198 241 503 2024-02-25T15:19:01Z Nat 11 Created page with "Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın." wikitext text/x-wiki Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın. 6f439086781356668cb6d8180c744fce5bd4a84e Translations:Beginner's Guide/20/tr 1198 242 504 2024-02-25T15:19:09Z Nat 11 Created page with "<span id="rolling-your-strokes"></span> ==== Vuruş yuvarlama ====" wikitext text/x-wiki <span id="rolling-your-strokes"></span> ==== Vuruş yuvarlama ==== 24edcf8ff74a80c32b28aecbd00459b0dbf9a834 Translations:Beginner's Guide/21/tr 1198 243 505 2024-02-25T15:19:15Z Nat 11 Created page with "Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz." wikitext text/x-wiki Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz. 81d2b428d18cca7cf4000fa6f558fc084b161838 Translations:Beginner's Guide/22/tr 1198 244 507 2024-02-25T15:19:20Z Nat 11 Created page with "https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif" wikitext text/x-wiki https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif 86514ed06cb8dbb3f2cdcd1fbc0583076ef331f8 Translations:Beginner's Guide/23/tr 1198 245 508 2024-02-25T15:19:26Z Nat 11 Created page with "Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]]." wikitext text/x-wiki Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]]. 41d47412f8fe0836bb81c5a04ed89cbfd1cc7ea7 Plover Wiki/en 0 107 510 382 2024-02-25T15:23:12Z FuzzyBot 12 Updating to match new version of source page wikitext text/x-wiki <languages/> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. 7ac223ddd35cb1a70c76d832932a9673e67fc398 Installation Guide 0 8 511 370 2024-02-25T15:23:35Z Nat 11 wrap in <translate> wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} Plover is set up! You can run Plover like you would any other application. {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === You may run into the following error when trying to run Plover: <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] </translate> e612bbc1e5e6d0846b38306d302bc9766f5d7e71 Installation Guide 0 8 512 511 2024-02-25T15:23:48Z Nat 11 Marked this version for translation wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} <!--T:7--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. <!--T:12--> {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == <!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === <!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == <!--T:27--> <!--T:28--> Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> 912f2236adca4a51b74378fb6ecde4aa230e95ae Translations:Installation Guide/Page display title/en 1198 246 513 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Installation Guide 985c60dcff79c62e661f5afa9edb6611b40ce0e0 Translations:Installation Guide/1/en 1198 247 514 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki == Install Plover on Windows == de28a283a6e9f309e2c43a502e2f1b7b37be164b Translations:Installation Guide/2/en 1198 248 515 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === ff8fbbea5bb9cd7b9fc22d610cd9574ad437d723 Translations:Installation Guide/3/en 1198 249 516 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === a17266de0c451ef931434b5f8111d64f0f602dcb Translations:Installation Guide/4/en 1198 250 517 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === 1cff15bfbccd0b6454eda1804828f503709b7666 Translations:Installation Guide/5/en 1198 251 518 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. f64e8214b6dcb9cfce62cd51be52001acfc92080 Translations:Installation Guide/6/en 1198 252 519 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} b8c0cf81fb82cf719685d43217553e14fea9e5f5 Translations:Installation Guide/7/en 1198 253 520 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Plover is set up! You can run Plover like you would any other application. 9ff348dd2492fc10144ab51262e7082c4c4c43a7 Translations:Installation Guide/8/en 1198 254 521 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== 77b8d077557c0e4aab5298e5d9cbbe4afc732519 Translations:Installation Guide/9/en 1198 255 522 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> 163a0a3cd3d2d76f5ee711f95d04546413803117 Translations:Installation Guide/10/en 1198 256 523 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki == Install Plover on Linux == 0befc8d2a195da3a031d603555728707d1c20763 Translations:Installation Guide/11/en 1198 257 524 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. 38fbbf35c4053c882b9ab014062a8d79da4ae044 Translations:Installation Guide/12/en 1198 258 525 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} 2bba77055205a1a3020b267263ba9999d1e0def0 Translations:Installation Guide/13/en 1198 259 526 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === 50cb7b4e713516bc62a29da34bbedda597cc7433 Translations:Installation Guide/14/en 1198 260 527 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki To use it: ec17d2b0393d701bb378fb92b5f34cc43ec1456a Translations:Installation Guide/15/en 1198 261 528 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == 687f694c4071aa14c80e2dc064d97de330fe2e66 Translations:Installation Guide/16/en 1198 262 529 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. 1ed779be712ba446ff24d2a96fc2305e3ff320d6 Translations:Installation Guide/17/en 1198 263 530 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: e322c1c071b0f74420d23bdefff3eb9ad216a732 Translations:Installation Guide/18/en 1198 264 531 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. f09689e21a9528f5ea4a38f5d5cac2bcfc6a52e2 Translations:Installation Guide/19/en 1198 265 532 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Once you know the correct group, add your user to it by running the following command: cd84153a2b7ded68af9779cdf97918b42adb4ba5 Translations:Installation Guide/20/en 1198 266 533 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. 8610e00df957b805859e0f32ce8d3a11ef56b209 Translations:Installation Guide/21/en 1198 267 534 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === 7d6c621cba5cec8907316cdefdbb59c77ddc535e Translations:Installation Guide/22/en 1198 268 535 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki You may run into the following error when trying to run Plover: 3895bdfd2e3145376cf9673a0ae287afb6d62fcc Translations:Installation Guide/23/en 1198 269 536 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: 39065bbea16431b1340c1215115847614fd3aa1c Translations:Installation Guide/24/en 1198 270 537 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> 2276e3f868a293091719c51294f3006b3154ccfe Translations:Installation Guide/25/en 1198 271 538 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: a383ff1b1ed10aca7df745cf16c58c943bd48969 Translations:Installation Guide/26/en 1198 272 539 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> 9d5d89c6a71d72c80968ca4c4403977a548cc42b Translations:Installation Guide/27/en 1198 273 540 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki == Setting up my machine == afa446c93e63de736df94e822548c1b8bb7206a8 Translations:Installation Guide/28/en 1198 274 541 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === 0073e228f1d8e07d2479f71e82533cb5dc994ee5 Translations:Installation Guide/29/en 1198 275 542 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] 63679740954cea29642d28f224fef14f4f3ae546 Translations:Installation Guide/30/en 1198 276 543 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki === Homebrew Cask === 7ef73255e9286d68b5e87ddb95c94cd961b1aa95 Translations:Installation Guide/31/en 1198 277 544 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === e7396e6b60e42be0b038ff01bde600c7c6bb5ebe Translations:Installation Guide/32/en 1198 278 545 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Two AUR packages are provided: 0ade76d5fe12e1682f110045e7267cd299f4ca2a Translations:Installation Guide/33/en 1198 279 546 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> 12b866e2b7decd7ba7cb5f54d37eadc9b0dd4ce9 Translations:Installation Guide/34/en 1198 280 547 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === 424aa0b91f8824c203bb8a3ea70a93ca60e2afe5 Translations:Installation Guide/35/en 1198 281 548 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Currently, only a git ebuild for the <code>master</code> branch is provided. 251694a58c15a5466f5271b86783c3fd0c8fa351 Translations:Installation Guide/36/en 1198 282 549 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == 5e3fb2f52c8cc02a1e7935d9c0e8a3596a74be76 Translations:Installation Guide/37/en 1198 283 550 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. 5196ab0c864a131a6fbbcffa0935b2b79699872c Translations:Installation Guide/38/en 1198 284 551 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == d35c13a0483b91a40ed394aa0b681b627631d91f Translations:Installation Guide/39/en 1198 285 552 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki If you get stuck, you can: 8a22806405dac279598617c70011e8ab607c1772 Translations:Installation Guide/40/en 1198 286 553 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] 4e4f6e0ac5871eebb5cc2118f7284e188d334d38 Translations:Installation Guide/41/en 1198 287 554 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == edce8215f6a92c0ba30bcbbbf5cc10b0ba47e9fb Translations:Installation Guide/42/en 1198 288 555 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: 282e41b8e082ce00f56ccce8e21e773796f3af8f Translations:Installation Guide/43/en 1198 289 556 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] 5e4a1808b3057a7d73b196eea82ae74de2641e79 Translations:Installation Guide/44/en 1198 290 557 2024-02-25T15:24:00Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki [[Category:Plover]] 19217f70dd61937300e5a44a34bca8d3ef06ff85 Translations:Installation Guide/Page display title/tr 1198 291 558 2024-02-25T15:24:24Z Nat 11 Created page with "Kurulum Kılavuzu" wikitext text/x-wiki Kurulum Kılavuzu 3363e9b0b7fb7c6c0be61617913aa3c446c56aed Translations:Installation Guide/1/tr 1198 292 559 2024-02-25T15:24:31Z Nat 11 Created page with "== Windows Üzerinde Plover Kurulumu ==" wikitext text/x-wiki == Windows Üzerinde Plover Kurulumu == fac4c113d315e7a41d8d58613d55d886c4f9f57b Translations:Installation Guide/2/tr 1198 293 560 2024-02-25T15:24:44Z Nat 11 Created page with " Plover kurulabilir ya da taşınabilir bir ZIP olarak doğrudan çalıştırılabilir. Eğer Plover'ı bir USB bellek üzerinden çalıştırıyorsanız ya da ana makinenin yetkileri kısıtlanmışsa, taşınabilir ZIP'i kullanmak daha avantajlı olabilir. Fakat başka tüm kullanım amaçları için, kurulum yöntemi önerilir. <span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4...." wikitext text/x-wiki Plover kurulabilir ya da taşınabilir bir ZIP olarak doğrudan çalıştırılabilir. Eğer Plover'ı bir USB bellek üzerinden çalıştırıyorsanız ya da ana makinenin yetkileri kısıtlanmışsa, taşınabilir ZIP'i kullanmak daha avantajlı olabilir. Fakat başka tüm kullanım amaçları için, kurulum yöntemi önerilir. <span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Windows kurulum sihirbazını indirin] === f3e66a16ef0d0f0d5bcbc7a9b84af05aa604293f Translations:Installation Guide/3/tr 1198 294 561 2024-02-25T15:25:00Z Nat 11 Created page with "Kurulum sihirbazını çalıştırın ve ekrandaki talimatları takip edin. [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 Windows Defender SmartScreen'i] baypas etmek için uygulamaya yetki atamanız gerekebilir." wikitext text/x-wiki Kurulum sihirbazını çalıştırın ve ekrandaki talimatları takip edin. [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 Windows Defender SmartScreen'i] baypas etmek için uygulamaya yetki atamanız gerekebilir. daea4f06adba00b6545438be69a8948f5bacf55c Translations:Installation Guide/3/tr 1198 294 562 561 2024-02-25T15:25:06Z Nat 11 wikitext text/x-wiki Kurulum sihirbazını çalıştırın ve ekrandaki talimatları takip edin. [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 Windows Defender SmartScreen'i] baypas etmek için uygulamaya yetki atamanız gerekebilir. <span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Windows taşınabilir ZIP'i indirin] === 233b5d52259b6ee684ab2b7b817a6b52d4ce635c Translations:Installation Guide/4/tr 1198 295 563 2024-02-25T15:25:26Z Nat 11 Created page with "Tüm arşivi Plover'ı çalıştırmak için kullanmak istediğiniz klasöre doğru çıkarın." wikitext text/x-wiki Tüm arşivi Plover'ı çalıştırmak için kullanmak istediğiniz klasöre doğru çıkarın. 8a0fe3ec736b645f4be0fb0a54a3143314b69b68 564 563 2024-02-25T15:25:32Z Nat 11 wikitext text/x-wiki Tüm arşivi Plover'ı çalıştırmak için kullanmak istediğiniz klasöre doğru çıkarın. <span id="install-plover-on-mac"></span> == Mac Üzerinde Plover Kurulumu == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Mac için Plover'ı indirin] === 74dbf31f4c78d04656302a7218a15e68ca74c73f Installation Guide/tr 0 296 565 2024-02-25T15:25:50Z Nat 11 Created page with "== Windows Üzerinde Plover Kurulumu ==" wikitext text/x-wiki <languages /> <span id="Install_Plover_on_Windows"></span> == Windows Üzerinde Plover Kurulumu == Plover kurulabilir ya da taşınabilir bir ZIP olarak doğrudan çalıştırılabilir. Eğer Plover'ı bir USB bellek üzerinden çalıştırıyorsanız ya da ana makinenin yetkileri kısıtlanmışsa, taşınabilir ZIP'i kullanmak daha avantajlı olabilir. Fakat başka tüm kullanım amaçları için, kurulum yöntemi önerilir. <span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Windows kurulum sihirbazını indirin] === Kurulum sihirbazını çalıştırın ve ekrandaki talimatları takip edin. [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 Windows Defender SmartScreen'i] baypas etmek için uygulamaya yetki atamanız gerekebilir. <span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Windows taşınabilir ZIP'i indirin] === Tüm arşivi Plover'ı çalıştırmak için kullanmak istediğiniz klasöre doğru çıkarın. <span id="install-plover-on-mac"></span> == Mac Üzerinde Plover Kurulumu == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Mac için Plover'ı indirin] === <div lang="en" dir="ltr" class="mw-content-ltr"> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Plover is set up! You can run Plover like you would any other application. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> == Install Plover on Linux == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> To use it: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Once you know the correct group, add your user to it by running the following command: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> You may run into the following error when trying to run Plover: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> == Setting up my machine == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Homebrew Cask === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Two AUR packages are provided: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Currently, only a git ebuild for the <code>master</code> branch is provided. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> If you get stuck, you can: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Category:Plover]] </div> f9aa0a8cbcf084d054ef27c7b72a0d333a87ffcd 567 565 2024-02-25T15:28:08Z Nat 11 wikitext text/x-wiki <languages /> <span id="Install_Plover_on_Windows"></span> == Windows Üzerinde Plover Kurulumu == Plover kurulabilir ya da taşınabilir bir ZIP olarak doğrudan çalıştırılabilir. Eğer Plover'ı bir USB bellek üzerinden çalıştırıyorsanız ya da ana makinenin yetkileri kısıtlanmışsa, taşınabilir ZIP'i kullanmak daha avantajlı olabilir. Fakat başka tüm kullanım amaçları için, kurulum yöntemi önerilir. <span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Windows kurulum sihirbazını indirin] === Kurulum sihirbazını çalıştırın ve ekrandaki talimatları takip edin. [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 Windows Defender SmartScreen'i] baypas etmek için uygulamaya yetki atamanız gerekebilir. <span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Windows taşınabilir ZIP'i indirin] === Tüm arşivi Plover'ı çalıştırmak için kullanmak istediğiniz klasöre doğru çıkarın. <span id="install-plover-on-mac"></span> == Mac Üzerinde Plover Kurulumu == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Mac için Plover'ı indirin] === <div lang="en" dir="ltr" class="mw-content-ltr"> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} </div> Ve Plover kuruldu! Plover'ı şimdi herhangi başka bir uygulama gibi çalıştırabilirsiniz. <div lang="en" dir="ltr" class="mw-content-ltr"> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> == Install Plover on Linux == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> To use it: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Once you know the correct group, add your user to it by running the following command: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> You may run into the following error when trying to run Plover: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> == Setting up my machine == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Homebrew Cask === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Two AUR packages are provided: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Currently, only a git ebuild for the <code>master</code> branch is provided. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> If you get stuck, you can: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Category:Plover]] </div> 96e04cf7cac9b7ef8107404044ea7fe6b8ab88d8 Translations:Installation Guide/7/tr 1198 297 566 2024-02-25T15:26:04Z Nat 11 Created page with "Ve Plover kuruldu! Plover'ı şimdi herhangi başka bir uygulama gibi çalıştırabilirsiniz." wikitext text/x-wiki Ve Plover kuruldu! Plover'ı şimdi herhangi başka bir uygulama gibi çalıştırabilirsiniz. fff629944823c212980cb9593f15258a92dd4ba3 Plover Wiki 0 3 568 395 2024-02-25T15:31:19Z Rice 1 wikitext text/x-wiki <languages/> <translate> <!--T:7--> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. <!--T:8--> Plover runs on Windows, macOS, and Linux. <!--T:9--> [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] <!--T:10--> == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. <!--T:11--> == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. <!--T:12--> [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </translate> 6521db6a6a5c925c6979eec3a9fcefcf3e0ca7e3 571 568 2024-02-25T15:34:10Z Rice 1 Reverted edits by [[Special:Contributions/Rice|Rice]] ([[User talk:Rice|talk]]) to last revision by [[User:Astra|Astra]] wikitext text/x-wiki <translate> <!--T:7--> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. <!--T:8--> Plover runs on Windows, macOS, and Linux. <!--T:9--> [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] <!--T:10--> == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. <!--T:11--> == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. <!--T:12--> [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </translate> 74cd4766f92dbed6332c188a2a80d1dbb7ae086f 572 571 2024-02-25T15:35:12Z Rice 1 wikitext text/x-wiki <languages /> <translate> <!--T:7--> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. <!--T:8--> Plover runs on Windows, macOS, and Linux. <!--T:9--> [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] <!--T:10--> == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. <!--T:11--> == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. <!--T:12--> [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </translate> 1470ee5e092b0461ead08bce50825227d98885d7 575 572 2024-02-25T19:42:11Z Nat 11 add translation help wikitext text/x-wiki <languages /> <translate> <!--T:7--> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. <!--T:8--> Plover runs on Windows, macOS, and Linux. <!--T:9--> [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] <!--T:10--> == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. <!--T:11--> == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. === Translating the Wiki === The MediaWiki Translation extension is used for internationalizing the Wiki. There is a [[Plover Wiki/Translation instructions|write-up]] on instructions for translation. <hr /> <!--T:12--> [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </translate> 1f076029acef79c8867a52457f5dfa29b7ccdeff 576 575 2024-02-25T19:42:42Z Nat 11 Marked this version for translation wikitext text/x-wiki <languages /> <translate> <!--T:7--> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. <!--T:8--> Plover runs on Windows, macOS, and Linux. <!--T:9--> [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] <!--T:10--> == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. <!--T:11--> == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. === Translating the Wiki === <!--T:13--> <!--T:14--> The MediaWiki Translation extension is used for internationalizing the Wiki. There is a [[Plover Wiki/Translation instructions|write-up]] on instructions for translation. <!--T:15--> <hr /> <!--T:12--> [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. </translate> 33f37760e8476f916873205e916a17248da9d4dc Installation Guide/en 0 298 569 2024-02-25T15:31:22Z FuzzyBot 12 Updating to match new version of source page wikitext text/x-wiki <languages /> == Install Plover on Windows == Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} Plover is set up! You can run Plover like you would any other application. {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === You may run into the following error when trying to run Plover: <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == If you get stuck, you can: * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] [[Category:Plover]] b5ad47bde4ada8139a0c3dea5d844bbffef07f7d Plover Wiki/fr 0 132 570 393 2024-02-25T15:31:28Z FuzzyBot 12 Updating to match new version of source page wikitext text/x-wiki <languages/> [[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]] Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute. Plover fonctionne sous Windows, macOS et Linux. [[Beginner's Guide|'''Guide du débutant : Démarrez avec Plover''']] == Le projet Open Steno == Plover fait partie du [http://openstenoproject.org/ Open Steno Project]. Le projet Open Steno vise à ouvrir la sténographie au grand public. Le projet Open Steno s'est manifesté par des efforts en faveur de logiciels libres, de ressources d'apprentissage gratuites et d'options de claviers source ouverte. == Contribuer au Wiki == Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée. [[Spécial :ConfirmEmail|Confirmez votre adresse e-mail ici.]] Assurez-vous de vérifier votre dossier spam. 1ac93f7c7200d3b8b093447420b93d5c5b0b496f 585 570 2024-02-25T19:49:24Z FuzzyBot 12 Updating to match new version of source page wikitext text/x-wiki <languages /> [[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]] Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute. Plover fonctionne sous Windows, macOS et Linux. [[Beginner's Guide|'''Guide du débutant : Démarrez avec Plover''']] == Le projet Open Steno == Plover fait partie du [http://openstenoproject.org/ Open Steno Project]. Le projet Open Steno vise à ouvrir la sténographie au grand public. Le projet Open Steno s'est manifesté par des efforts en faveur de logiciels libres, de ressources d'apprentissage gratuites et d'options de claviers source ouverte. == Contribuer au Wiki == Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée. <div lang="en" dir="ltr" class="mw-content-ltr"> === Translating the Wiki === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> The MediaWiki Translation extension is used for internationalizing the Wiki. There is a [[Plover Wiki/Translation instructions|write-up]] on instructions for translation. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <hr /> </div> [[Spécial :ConfirmEmail|Confirmez votre adresse e-mail ici.]] Assurez-vous de vérifier votre dossier spam. 4f1a0bda6f4e593e1d66e7157a98bf104de2a4c9 Plover Wiki/tr 0 138 573 402 2024-02-25T15:37:40Z FuzzyBot 12 Updating to match new version of source page wikitext text/x-wiki <languages/> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar. Plover Windows, Linux ve macOS üzerinde çalışır. [[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']] == Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir. == Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır. [[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz. c74f62dc91179be14f14e47384f425fca9397f30 583 573 2024-02-25T19:47:03Z Nat 11 Created page with "=== Vikiyi Çevirme ===" wikitext text/x-wiki <languages /> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar. Plover Windows, Linux ve macOS üzerinde çalışır. [[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']] == Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir. == Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır. <span id="Translating_the_Wiki"></span> === Vikiyi Çevirme === Vikiyi uluslararasılaştırmak için MediaWiki Translation eklentisi kullanılır. Çeviri adımları üzerine bir [[Plover Wiki/Translation instructions|yazıt]] bulunur. <hr /> [[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz. a9ad647b573214e0c2b8efc0a49729564025b865 592 583 2024-02-26T13:10:40Z Nat 11 wikitext text/x-wiki <languages /> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar. Plover Windows, Linux ve macOS üzerinde çalışır. [[Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']] == Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir. == Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır. <span id="Translating_the_Wiki"></span> === Vikiyi Çevirme === Vikiyi uluslararasılaştırmak için MediaWiki Translation eklentisi kullanılır. Çeviri adımları üzerine bir [[Plover Wiki/Translation instructions|yazıt]] bulunur. <hr /> [[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz. 59a81a0bdbe8a048c3507b778fef1ac3d27cfb2e Plover Wiki/Translation instructions 0 299 574 2024-02-25T19:36:05Z Nat 11 Initial edit wikitext text/x-wiki This page explains how to translate pages on this wiki to other languages using the Translate extension. Make sure to follow these steps as close as possible. === Prepare for translation === ==== Decorate the page with necessary syntax ==== Start editing the source of the page you would like to translate, and wrap the entire page in a <code>&lt;translate&gt;''[...]''&lt;/translate&gt;</code> tag. This will automatically split the entirety of the page into ''translation sections'', by double line feeds. {{Warning|text='''Make sure that markup elements are properly split!''' For example, if you encounter a markup such as ... == Heading == Content ... , it's preferable to split it to ... == Heading == Content ... , which ensures proper separation of translation sections.}} After that, add a <code>&lt;languages /&gt;</code> tag to the top of the page, which provides a language selection menu. The document should now look like ... &lt;languages /&gt; &lt;translate&gt; ''[...]'' &lt;/translate&gt; Save your edits. '''Yay!''' The page can now be marked for translation. ==== Mark article for translation ==== After this, you should '''contact an administrator''' to mark your article for translation. We can't provide an average response time, but it probably shouldn't take more than a week. == Translating the page == When your article is marked for translation by an admin, you should see a '''"Translate this page"''' link on the top of the article. Follow this link, and from the top right, change the language option to your translation target. A menu for translation should show up. The steps for translation should thereafter become clear. If you have problems, check out [https://www.mediawiki.org/wiki/Help:Extension:Translate/Translation_example the article about translation on MediaWiki docs]. {{Info|text='''Pro Tip:''' When you're done translating and the page doesn't seem to have updated&mdash;of course, with the appropriate language set on the menu at the bottom of the article&mdash;purging the cache data of the article from '''[[Special:Purge]]'''.}} '''Hurray!''' Your translation should now be available to everyone browsing the wiki. == Issues? == We talk about this translations of this wiki on the [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], at the "plover.wiki translation" thread of the #server-feedback channel. Feel free to report any issues with translation there. == Epilogue == The MediaWiki documentation has [https://www.mediawiki.org/wiki/Help:Extension:Translate/Page_translation_example a translation preparation guide for administrators], but it lacks some pitfalls we ran into. We're not sure that they aren't specific to us, but the final frustration led to the creation of this document. 65730da04a4215a56cab2e96d01a653e96fc4a6c 593 574 2024-02-26T13:17:31Z Nat 11 /* Translating the page */ fix typo wikitext text/x-wiki This page explains how to translate pages on this wiki to other languages using the Translate extension. Make sure to follow these steps as close as possible. === Prepare for translation === ==== Decorate the page with necessary syntax ==== Start editing the source of the page you would like to translate, and wrap the entire page in a <code>&lt;translate&gt;''[...]''&lt;/translate&gt;</code> tag. This will automatically split the entirety of the page into ''translation sections'', by double line feeds. {{Warning|text='''Make sure that markup elements are properly split!''' For example, if you encounter a markup such as ... == Heading == Content ... , it's preferable to split it to ... == Heading == Content ... , which ensures proper separation of translation sections.}} After that, add a <code>&lt;languages /&gt;</code> tag to the top of the page, which provides a language selection menu. The document should now look like ... &lt;languages /&gt; &lt;translate&gt; ''[...]'' &lt;/translate&gt; Save your edits. '''Yay!''' The page can now be marked for translation. ==== Mark article for translation ==== After this, you should '''contact an administrator''' to mark your article for translation. We can't provide an average response time, but it probably shouldn't take more than a week. == Translating the page == When your article is marked for translation by an admin, you should see a '''"Translate this page"''' link on the top of the article. Follow this link, and from the top right, change the language option to your translation target. A menu for translation should show up. The steps for translation should thereafter become clear. If you have problems, check out [https://www.mediawiki.org/wiki/Help:Extension:Translate/Translation_example the article about translation on MediaWiki docs]. {{Info|text='''Pro Tip:''' When you're done translating and the page doesn't seem to have updated&mdash;of course, with the appropriate language set on the menu at the bottom of the article&mdash;try purging the cache data of the article from '''[[Special:Purge]]'''.}} '''Hurray!''' Your translation should now be available to everyone browsing the wiki. == Issues? == We talk about this translations of this wiki on the [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], at the "plover.wiki translation" thread of the #server-feedback channel. Feel free to report any issues with translation there. == Epilogue == The MediaWiki documentation has [https://www.mediawiki.org/wiki/Help:Extension:Translate/Page_translation_example a translation preparation guide for administrators], but it lacks some pitfalls we ran into. We're not sure that they aren't specific to us, but the final frustration led to the creation of this document. 836d420d17ef10b670b42d792cfe4dd656c70c16 594 593 2024-02-26T21:06:24Z Nat 11 /* Translating the page */ fix incorrect phrase wikitext text/x-wiki This page explains how to translate pages on this wiki to other languages using the Translate extension. Make sure to follow these steps as close as possible. === Prepare for translation === ==== Decorate the page with necessary syntax ==== Start editing the source of the page you would like to translate, and wrap the entire page in a <code>&lt;translate&gt;''[...]''&lt;/translate&gt;</code> tag. This will automatically split the entirety of the page into ''translation sections'', by double line feeds. {{Warning|text='''Make sure that markup elements are properly split!''' For example, if you encounter a markup such as ... == Heading == Content ... , it's preferable to split it to ... == Heading == Content ... , which ensures proper separation of translation sections.}} After that, add a <code>&lt;languages /&gt;</code> tag to the top of the page, which provides a language selection menu. The document should now look like ... &lt;languages /&gt; &lt;translate&gt; ''[...]'' &lt;/translate&gt; Save your edits. '''Yay!''' The page can now be marked for translation. ==== Mark article for translation ==== After this, you should '''contact an administrator''' to mark your article for translation. We can't provide an average response time, but it probably shouldn't take more than a week. == Translating the page == When your article is marked for translation by an admin, you should see a '''"Translate this page"''' link on the top of the article. Follow this link, and from the top right, change the language option to your translation target. A menu for translation should show up. The steps for translation should thereafter become clear. If you have problems, check out [https://www.mediawiki.org/wiki/Help:Extension:Translate/Translation_example the article about translation on MediaWiki docs]. {{Info|text='''Pro Tip:''' When you're done translating and the page doesn't seem to have updated&mdash;of course, with the appropriate language set on the menu at the top of the article&mdash;try purging the cache data of the article from '''[[Special:Purge]]'''.}} '''Hurray!''' Your translation should now be available to everyone browsing the wiki. == Issues? == We talk about this translations of this wiki on the [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], at the "plover.wiki translation" thread of the #server-feedback channel. Feel free to report any issues with translation there. == Epilogue == The MediaWiki documentation has [https://www.mediawiki.org/wiki/Help:Extension:Translate/Page_translation_example a translation preparation guide for administrators], but it lacks some pitfalls we ran into. We're not sure that they aren't specific to us, but the final frustration led to the creation of this document. 7b71f6b697733682bf98fb5bfe815441e6c7f395 598 594 2024-03-03T06:37:46Z Nat 11 fix phrasing error wikitext text/x-wiki This page explains how to translate pages on this wiki to other languages using the Translate extension. Make sure to follow these steps as close as possible. === Prepare for translation === ==== Decorate the page with necessary syntax ==== Start editing the source of the page you would like to translate, and wrap the entire page in a <code>&lt;translate&gt;''[...]''&lt;/translate&gt;</code> tag. This will automatically split the entirety of the page into ''translation sections'', by double line feeds. {{Warning|text='''Make sure that markup elements are properly split!''' For example, if you encounter a markup such as ... == Heading == Content ... , it's preferable to split it to ... == Heading == Content ... , which ensures proper separation of translation sections.}} After that, add a <code>&lt;languages /&gt;</code> tag to the top of the page, which provides a language selection menu. The document should now look like ... &lt;languages /&gt; &lt;translate&gt; ''[...]'' &lt;/translate&gt; Save your edits. '''Yay!''' The page can now be marked for translation. ==== Mark article for translation ==== After this, you should '''contact an administrator''' to mark your article for translation. We can't provide an average response time, but it probably shouldn't take more than a week. == Translating the page == When your article is marked for translation by an admin, you should see a '''"Translate this page"''' link on the top of the article. Follow this link, and from the top right, change the language option to your translation target. A menu for translation should show up. The steps for translation should thereafter become clear. If you have problems, check out [https://www.mediawiki.org/wiki/Help:Extension:Translate/Translation_example the article about translation on MediaWiki docs]. {{Info|text='''Pro Tip:''' When you're done translating and the page doesn't seem to have updated&mdash;of course, with the appropriate language set on the menu at the top of the article&mdash;try purging the cache data of the article from '''[[Special:Purge]]'''.}} '''Hurray!''' Your translation should now be available to everyone browsing the wiki. == Issues? == We talk about translations of this wiki on the [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], at the "plover.wiki translation" thread of the #server-feedback channel. Feel free to report any issues with translation there. == Epilogue == The MediaWiki documentation has [https://www.mediawiki.org/wiki/Help:Extension:Translate/Page_translation_example a translation preparation guide for administrators], but it lacks some pitfalls we ran into. We're not sure that they aren't specific to us, but the final frustration led to the creation of this document. 18d26fde7d02db4ef2170971e7a49eae615eaaff 599 598 2024-03-03T06:41:53Z Nat 11 /* Mark article for translation */ add contact link wikitext text/x-wiki This page explains how to translate pages on this wiki to other languages using the Translate extension. Make sure to follow these steps as close as possible. === Prepare for translation === ==== Decorate the page with necessary syntax ==== Start editing the source of the page you would like to translate, and wrap the entire page in a <code>&lt;translate&gt;''[...]''&lt;/translate&gt;</code> tag. This will automatically split the entirety of the page into ''translation sections'', by double line feeds. {{Warning|text='''Make sure that markup elements are properly split!''' For example, if you encounter a markup such as ... == Heading == Content ... , it's preferable to split it to ... == Heading == Content ... , which ensures proper separation of translation sections.}} After that, add a <code>&lt;languages /&gt;</code> tag to the top of the page, which provides a language selection menu. The document should now look like ... &lt;languages /&gt; &lt;translate&gt; ''[...]'' &lt;/translate&gt; Save your edits. '''Yay!''' The page can now be marked for translation. ==== Mark article for translation ==== After this, you should '''contact an administrator''' to mark your article for translation. You can talk to us on the [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server]. We can't provide an average response time, but it probably shouldn't take more than a week. == Translating the page == When your article is marked for translation by an admin, you should see a '''"Translate this page"''' link on the top of the article. Follow this link, and from the top right, change the language option to your translation target. A menu for translation should show up. The steps for translation should thereafter become clear. If you have problems, check out [https://www.mediawiki.org/wiki/Help:Extension:Translate/Translation_example the article about translation on MediaWiki docs]. {{Info|text='''Pro Tip:''' When you're done translating and the page doesn't seem to have updated&mdash;of course, with the appropriate language set on the menu at the top of the article&mdash;try purging the cache data of the article from '''[[Special:Purge]]'''.}} '''Hurray!''' Your translation should now be available to everyone browsing the wiki. == Issues? == We talk about translations of this wiki on the [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], at the "plover.wiki translation" thread of the #server-feedback channel. Feel free to report any issues with translation there. == Epilogue == The MediaWiki documentation has [https://www.mediawiki.org/wiki/Help:Extension:Translate/Page_translation_example a translation preparation guide for administrators], but it lacks some pitfalls we ran into. We're not sure that they aren't specific to us, but the final frustration led to the creation of this document. 2e8fd9037b3b1798ad7fbfdb317d456c1e02ad52 Translations:Plover Wiki/13/en 1198 300 577 2024-02-25T19:43:03Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki === Translating the Wiki === 79088d4559cc87d98cc8b46427c95b7f61419f0c Translations:Plover Wiki/14/en 1198 301 578 2024-02-25T19:43:03Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki The MediaWiki Translation extension is used for internationalizing the Wiki. There is a [[Plover Wiki/Translation instructions|write-up]] on instructions for translation. 524c8a6eeb8a200013bf1430c9f3889cac03ae8e Translations:Plover Wiki/15/en 1198 302 579 2024-02-25T19:43:03Z FuzzyBot 12 Importing a new version from external source wikitext text/x-wiki <hr /> c41aeb6f82e99d37dcb981f47e9a1f9417e8b099 Translations:Plover Wiki/13/tr 1198 303 580 2024-02-25T19:43:56Z Nat 11 Created page with "=== Vikiyi Çevirme ===" wikitext text/x-wiki === Vikiyi Çevirme === 835bfd75d1886f361944670ad7e4aa519844a8a5 Translations:Plover Wiki/14/tr 1198 304 581 2024-02-25T19:46:55Z Nat 11 Created page with "Vikiyi uluslararasılaştırmak için MediaWiki Translation eklentisi kullanılır. Çeviri adımları üzerine bir [[Plover Wiki/Translation instructions|yazıt]] bulunur." wikitext text/x-wiki Vikiyi uluslararasılaştırmak için MediaWiki Translation eklentisi kullanılır. Çeviri adımları üzerine bir [[Plover Wiki/Translation instructions|yazıt]] bulunur. f24a64900780683c94fe388f2f8035e90ac5a3f5 Translations:Plover Wiki/15/tr 1198 305 582 2024-02-25T19:46:59Z Nat 11 Created page with "<hr />" wikitext text/x-wiki <hr /> c41aeb6f82e99d37dcb981f47e9a1f9417e8b099 Plover Wiki/en 0 107 584 510 2024-02-25T19:49:04Z FuzzyBot 12 Updating to match new version of source page wikitext text/x-wiki <languages /> [[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. [[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']] == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. == Contributing to the Wiki == Contributions are welcome, but edit permissions are restricted to accounts with a validated email address. === Translating the Wiki === The MediaWiki Translation extension is used for internationalizing the Wiki. There is a [[Plover Wiki/Translation instructions|write-up]] on instructions for translation. <hr /> [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder. 9703e6eecdf991620af08a858ed3bf2c9b296670 User:Nat 2 85 586 338 2024-02-25T20:04:50Z Nat 11 wikitext text/x-wiki <div style="overflow:hidden;padding:24px 0"> <div style="font:4em 'Liberation Mono',Consolas,monospace;font-weight:bold;display:inline-block;padding:0 8px;float:left"> <div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(-10deg);background:#ccc">n</div><div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(10deg)>a</div><div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(-10deg);background:#ccc">t</div><div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(10deg)>a</div><div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(-10deg);background:#ccc">l</div><div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(10deg)>i</div><div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(-10deg);background:#ccc">e</div> </div> I am Natalie. It seems I am an administrator here. </div> == <span style="vertical-align:bottom">E-mail</span> https://ctrl-c.club/~nat/email.gif https://ctrl-c.club/~nat/email3.gif https://ctrl-c.club/~nat/email4.gif https://ctrl-c.club/~nat/email7.gif == <pre> _CKQX)<m@MQi~ ^ygR@R&s^ -)wRMMMMMMQC! .*C&R@RAy^` :m@dCiTKMMg! -lXRM@gyc?*~` _}A@9*^CAM9^ -:^^;\kQMH<_ ;xR@hl^)URR2, ,o#RR@AJ|l*_ .\w@RI*` !y@Q\- "7R@er. _{KN&~ -)VBH! _YKMQc, .\w@Dr. ^x&R@BBMMK\_ !&BHC, ,%R@4: `*F@Q<' _{KM&~ .\w@H! ^AMKx_ !o@Q)_ :2R@b^ _{KN&~ -<5BH! _JK@P: .\w@H! ^KMHy^!eQMRC^ .|4@Rkc*^!^", "xR@hl!|&RQy, _YK@P: .\w@H! .+aQ@RV!!SRMq~,yQ@MMMMMM@AJ_ .*C&R@R&C" _YK@P: _L&@MMRmt_ -,,\8M&t_ ~OM&t_ "1&R@RA%+. _|Q@F*` `*2@Q+- !n&R@R&Y: ^smR@@RX|: ~OM&t_ ,y#R&|!|FRRC^ ,5@Qy, ,FQRw, :fR@a<~!XQdi_ !K@Vl"^{qQ5: ~OM&t_ !HW$|- :mWKJ- +5BK^ !H@3* .LAM9" `!o@A" ^KMK%)"- ~OM&t_ _)Q@%*` ,Z@R2, -)QRx**1R#* _CD@M@@@@@MMg! !JA@NMMRw|- ~9M&t_ !KNX|- :UWKY_ :4QX34UH2, _t&WK!.______ '^xmNH*` ,ZRRV*,,. _yD@&|!l2@R}^ -)eH@MQy!` :iQ@kl^!CdUn_ ,l#RT!~;|k@H* "i6WM@g{_ "n&R@R&y*. -rKMMO! `!{ER@RH2!_ -+%gR@@Rms^ :P@KY_ .\3@H! :P@KY_ .\3@H! :P@&V2$RR&{, ,fPQ@@He)- .\h@R{s6@Rb), ^imR@RHF^ :XMM87\c2RRF* *2@Rj*cw@Q|_ reR@&C*)&@@V, !gM&n^\K@Et_ :dBRF, ~&M8C_ ` _|QRC^ *3@Q+. .|XWH* ,aRQ2, :P@A{_ :$@R%_ ,+4Q@B@NMQn^ *k@H! `*2@Q)_ ,xUQ@@WMBR2, :dNR2, ~&MH{`_kR@V: _?QRC^ *3@Q|_ .|XWK!_!yRRt: _3RRa, :XMMHx+c%RRy! ,Z@@G!^}U@@Xl_.r2RB&C!+&@Ra_ *%RRYr*fgNWq! :E@b%FXRRms, ^fO@@U)*nE@K\^lk@Qic&@RX*_ ;%Q@RXx!?K@mi_ _|2UHQE1!` `!xGo, "KQ* _iIx*. ,Tel" _xP&y, ,lRQ* `^%wr\4&%oXUE{`_a@NMMMMMM&~ ,FQRw, :m@K{- !CQMMMMMMQ1! ^imR@RHF^ l|\L6V:_fFixU2, !mRQk!,:, ,FQRw, :m@KJ_ :c4@Qi^~,- !gM&n^\K@Et_ 2Ccc2x..7y!*Z%, :4RHC_ ,FQRw, :m@KY_ `*%@D* ,aRQ2, X2jcT| _V4~:a2, :4RHC_ ,FQRw, :m@KY_ `*%@D* ,xUQ@@WMBR2, XFl|y}"!&&!"}f_ :4RHC_ ,yQ@$, ;AMKJ_ `*%@D* `!yRRt: _3RRa, I7^!yX3T)c5%; ,FQ@&+"^;_ 'imBQfrikR@KY_ ^JRRF)^~", *%RRYr*fgNWq! !\xl' ,\4R@MNEr_ `!VR@KsiPDKC_ ,xmRBMRV|- ;%Q@RXx!?K@mi_ ,hd\_ -*Xw: "TG&&bC^. ^YRRl, `,!!_ ^9MMMMH?, "cXQ@RQV\, _^|2@Ql, `*KN&T!*2DN&^ ^YRRl, .ra@Dr` ~7RRs~ ^YRRl, 'cPMK^ ,lQRC! ^YRRl, .*a@#r` "xRRf~ ,FDQ%, -,,^|2RRY!",` .*KN&1!*kQ@m; ,kRRS, _}9@MMMMMMMMDi: ~cXR@R8h*_ </pre> 818fcd090e7a8e75888f11ce1ec4d45e12247d2f User:Rice/global.js 2 306 587 2024-02-25T20:41:58Z Rice 1 Created page with "mw.loader.load('https://www.mediawiki.org/w/index.php?title=XTools/ArticleInfo.js&action=raw&ctype=text/javascript');" javascript text/javascript mw.loader.load('https://www.mediawiki.org/w/index.php?title=XTools/ArticleInfo.js&action=raw&ctype=text/javascript'); c8bd8d012731754c7e3ad00d4ca43e8558d836ab 588 587 2024-02-25T20:43:24Z Rice 1 Blanked the page javascript text/javascript da39a3ee5e6b4b0d3255bfef95601890afd80709 MediaWiki:Common.js 8 67 589 236 2024-02-25T20:46:03Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ mw.loader.load('https://www.mediawiki.org/w/index.php?title=XTools/ArticleInfo.js&action=raw&ctype=text/javascript'); abf0086f379382698b852158662ce56ad19b84b4 590 589 2024-02-25T20:47:19Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ 7850587e5c59a0259c9c96f81797dcf059b3cac9 Translations:Plover Wiki/9/tr 1198 142 591 398 2024-02-26T13:10:37Z Nat 11 wikitext text/x-wiki [[Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']] 1fa2ba1e9a88a395795d1532365f67531229d086 Dictionary format 0 11 595 309 2024-02-27T13:36:06Z Nat 11 /* Carrying Capitalization */ remove redundant code tag wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}} == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. {{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}} === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === json === The standard Plover format. Described at Dictionary format. === rtf (aka CRE) === A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm . RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications. === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. { "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" } For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] 2198ea59179a612bdbefae3d6944d2e24a582ce4 File:Keyboard-arpeggiate.gif 6 307 596 2024-03-03T04:07:11Z Aerick 9 wikitext text/x-wiki Arpeggiate demo fe42d17de483a857f54e21f28d655bb1731ac04f File:Keyboard-roll.gif 6 308 597 2024-03-03T04:08:34Z Aerick 9 wikitext text/x-wiki Animation of rolling strokes. 057040e517016f7dee4a4d6a0755d2ee6c959da9 Invoke Plover from the command line 0 49 600 181 2024-03-22T09:08:46Z Nat 11 remove redundant code tag wikitext text/x-wiki Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line. The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.) In the example below, assume that the following command should be executed: plover -s plover_plugins install plover-stenograph-usb To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly. See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference]<sup>[external link]</sup> for other commands that can be executed. == Windows == # Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location" [[File:Windows plover shortcut right click menu.png|frameless|623x623px]] # You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here." [[File:Shift right click menu on plover console.png|frameless|617x617px]] # Type in the following command: .\plover_console.exe -s plover_plugins install plover-stenograph-usb [[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]] # # Press Enter to run the command. [[File:Install plugin output in powershell.png|frameless|675x675px]] == Mac == # Open the Terminal app # Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter: /Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb == Linux (AppImage) == # Execute the command in the command-line: plover.AppImage -s plover_plugins install plover-stenograph-usb be96cef34f98297356ad91e35b456bd7d6d63965 Supported hardware 0 10 604 226 2024-03-27T03:28:02Z Goober tony 19 Fixed small typo in the acronym of the Yet Another Steno Keyboard project in the DIY machines section. wikitext text/x-wiki This page lists the machines known to work with Plover = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price |- | [https://nolltronics.com/product/ecosteno/ Ecosteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} [[Category:Plover]] 9bef3f4ce14cf5d85b3cb66c6d67264451a64981 605 604 2024-04-05T03:22:28Z Aerick 9 Update stock status wikitext text/x-wiki This page lists the machines known to work with Plover = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno][https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno][https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} [[Category:Plover]] 28c9955b872f8585b31f92604f41d48d722c7ae5 606 605 2024-04-06T01:53:03Z Goober tony 19 fixed the image for the starboard wikitext text/x-wiki This page lists the machines known to work with Plover = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno][https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno][https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} [[Category:Plover]] 297000d521c161e34d811c7b2731953d0e3bbb1a 610 606 2024-04-07T21:35:21Z Aerick 9 Fix formatting of international site for nolltronics boards. wikitext text/x-wiki This page lists the machines known to work with Plover = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} [[Category:Plover]] ff63232bc34e8dd7182570146acdd7265c6531bd Beginner's Guide 0 4 607 413 2024-04-07T21:26:35Z Aerick 9 Fix gifs wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. <!--T:18--> See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|None|Thumb|Demonstration of the arpeggiate function.]] <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. <!--T:20--> <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> See below for a demonstration of rolling: [[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]] <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <!--T:31--> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === <!--T:32--> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: <!--T:33--> * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] <!--T:34--> You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling machines designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <!--T:44--> <span id="keyboard"></span> === Keyboard === <!--T:45--> By default, Plover will use your keyboard as its input device. <!--T:46--> # Run Plover. # Click the Output: '''Enable''' radio button. <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. <!--T:50--> This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:64--> <span id="stenography-machine"></span> === Stenography machine === <!--T:65--> <!--T:66--> Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: <!--T:67--> # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. <!--T:68--> See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:78--> [[Category:Plover]] </translate> bac625fa19e5e4cdc9c304f7d7732f4c26cde555 609 607 2024-04-07T21:32:05Z Aerick 9 Add screenshot for arpeggiate option wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. <!--T:18--> See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|None|Thumb|Demonstration of the arpeggiate function.]] <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|none|thumb]] <!--T:20--> <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> See below for a demonstration of rolling: [[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]] <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <!--T:31--> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === <!--T:32--> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: <!--T:33--> * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] <!--T:34--> You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling machines designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <!--T:44--> <span id="keyboard"></span> === Keyboard === <!--T:45--> By default, Plover will use your keyboard as its input device. <!--T:46--> # Run Plover. # Click the Output: '''Enable''' radio button. <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. <!--T:50--> This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:64--> <span id="stenography-machine"></span> === Stenography machine === <!--T:65--> <!--T:66--> Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: <!--T:67--> # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. <!--T:68--> See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:78--> [[Category:Plover]] </translate> f3cfa34896178368e25a61327c8e611cecb9913a File:Plover-arpeggiate-option.png 6 312 608 2024-04-07T21:30:03Z Aerick 9 wikitext text/x-wiki arpeggiate option highlighted 7dacc0fdcc930017f7f2ddd25a4c0502a0ae9788 User:CristineCcp 2 1136 1434 2024-04-12T20:51:30Z CristineCcp 1439 Created page with "%About_Yourself%" wikitext text/x-wiki %About_Yourself% e39700fa9be6f7ea8f16e3ab3e7e173242ed0719 User:HildredMadrigal 2 1137 1435 2024-04-12T20:53:09Z HildredMadrigal 1440 Created page with "%About_Yourself%" wikitext text/x-wiki %About_Yourself% e39700fa9be6f7ea8f16e3ab3e7e173242ed0719 User:AliciaCaffyn65 2 1138 1436 2024-04-12T20:54:02Z AliciaCaffyn65 1441 Created page with "%About_Yourself%" wikitext text/x-wiki %About_Yourself% e39700fa9be6f7ea8f16e3ab3e7e173242ed0719 User:RoscoeOrdell 2 1139 1437 2024-04-12T20:54:30Z RoscoeOrdell 1442 Created page with "%About_Yourself%" wikitext text/x-wiki %About_Yourself% e39700fa9be6f7ea8f16e3ab3e7e173242ed0719 User:Anita22655 2 1140 1438 2024-04-12T20:59:41Z Anita22655 1443 Created page with "%About_Yourself%" wikitext text/x-wiki %About_Yourself% e39700fa9be6f7ea8f16e3ab3e7e173242ed0719 Supported hardware 0 10 1446 610 2024-04-12T21:30:09Z Rice 1 Added section on controller steno wikitext text/x-wiki This page lists the machines known to work with Plover. The main 3 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # A video game controller = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. Please follow the instructions on the previously linked GitHub page to install and configure this properly. == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing Theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select T- and H- separately. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> <img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTYyNTksIm5iZiI6MTcxMjk1NTk1OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjEwNTU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZjMzY1Y2U4NzgzYWUzMDYwZThlMTllNThlNzExZWExMmYyNDNkMGZlZDFjNmY4Nzk5NzRmOGZiY2QyM2Y5ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.QW_77ZzS0WkRCEnWhWG-VBJacQR8CcqDzoaS99dBLEk"/> [[Category:Plover]] a27c2735d49805dbb1edc0ef11fe6113d4c07d44 1447 1446 2024-04-12T21:31:01Z Rice 1 changed capital to lower wikitext text/x-wiki This page lists the machines known to work with Plover. The main 3 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # A video game controller = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. Please follow the instructions on the previously linked GitHub page to install and configure this properly. == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select T- and H- separately. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> <img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTYyNTksIm5iZiI6MTcxMjk1NTk1OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjEwNTU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZjMzY1Y2U4NzgzYWUzMDYwZThlMTllNThlNzExZWExMmYyNDNkMGZlZDFjNmY4Nzk5NzRmOGZiY2QyM2Y5ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.QW_77ZzS0WkRCEnWhWG-VBJacQR8CcqDzoaS99dBLEk"/> [[Category:Plover]] 5382436fbe4064cd6c93718cde352aecf3d0361c 1448 1447 2024-04-12T21:32:50Z Rice 1 Add link to plugins page for installation instructions for plover_controller wikitext text/x-wiki This page lists the machines known to work with Plover. The main 3 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # A video game controller = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select T- and H- separately. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> <img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTYyNTksIm5iZiI6MTcxMjk1NTk1OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjEwNTU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZjMzY1Y2U4NzgzYWUzMDYwZThlMTllNThlNzExZWExMmYyNDNkMGZlZDFjNmY4Nzk5NzRmOGZiY2QyM2Y5ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.QW_77ZzS0WkRCEnWhWG-VBJacQR8CcqDzoaS99dBLEk"/> [[Category:Plover]] ed3d1c9de64f867560cf7c905668f722ed0e613a 1450 1448 2024-04-12T21:36:44Z Rice 1 Plover controller usage minor text changes wikitext text/x-wiki This page lists the machines known to work with Plover. The main 3 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # A video game controller = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> <img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTYyNTksIm5iZiI6MTcxMjk1NTk1OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjEwNTU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZjMzY1Y2U4NzgzYWUzMDYwZThlMTllNThlNzExZWExMmYyNDNkMGZlZDFjNmY4Nzk5NzRmOGZiY2QyM2Y5ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.QW_77ZzS0WkRCEnWhWG-VBJacQR8CcqDzoaS99dBLEk"/> [[Category:Plover]] af8ca33b0f81624f1f6cbd5f9ea168b2f54414ae 1451 1450 2024-04-12T21:40:08Z Rice 1 Add link to controller section on top of page wikitext text/x-wiki This page lists the machines known to work with Plover. The main 3 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> <img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTYyNTksIm5iZiI6MTcxMjk1NTk1OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjEwNTU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZjMzY1Y2U4NzgzYWUzMDYwZThlMTllNThlNzExZWExMmYyNDNkMGZlZDFjNmY4Nzk5NzRmOGZiY2QyM2Y5ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.QW_77ZzS0WkRCEnWhWG-VBJacQR8CcqDzoaS99dBLEk"/> [[Category:Plover]] 467098fb49d6d502af8c5576191dbe73d1f4d338 1452 1451 2024-04-12T21:40:31Z Rice 1 wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> <img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTYyNTksIm5iZiI6MTcxMjk1NTk1OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjEwNTU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZjMzY1Y2U4NzgzYWUzMDYwZThlMTllNThlNzExZWExMmYyNDNkMGZlZDFjNmY4Nzk5NzRmOGZiY2QyM2Y5ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.QW_77ZzS0WkRCEnWhWG-VBJacQR8CcqDzoaS99dBLEk"/> [[Category:Plover]] 5e8e5305d110a0e1d354e55c312e333f2a1a14c4 1457 1452 2024-04-12T21:48:09Z Rice 1 /* Usage */ wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> <img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTg3NDksIm5iZiI6MTcxMjk1ODQ0OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjE0NzI5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MWRjNjgwYWY4ZjhkMzg1NmJjYTcyZTRhZTFhMTJhZWQzMmUwMDdhMDRmNmQ0ZTU1NWNiY2NiNDdlNzBiN2Q3MiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.ecIwQgaEEgH4oXEda0c2goj4Hh5rNWYBHo5-2x6Mj4E"/> [[Category:Plover]] ae94f6464fe14895ea324f8c505287875d4f9741 1476 1457 2024-04-12T22:02:11Z Rice 1 Upload image instead of linking to it in controller section wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] bc85268716142b068ce19c1cbe0934a72b77c470 1477 1476 2024-04-12T22:05:18Z Rice 1 Add text showing price benefits of video game controller wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] 15e0d53e01187b0213ee42fe27b49ed453464bab 1478 1477 2024-04-12T22:15:41Z Tadeo 1451 Add macOS warning for plover_controller wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. Note: as per the project's README, there may be issues using it with macOS. == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] 1634f5521c04e1e154c0c22c455457b2f79b5ebd 1619 1478 2024-04-14T20:04:16Z Rice 1 video game controller note update wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] a64a7340238a0941740ae3e722fa1923d9029a00 1620 1619 2024-04-14T20:05:08Z Rice 1 wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span> == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] 59a66ff8f9aae0f54bdbbc2d4153b02ed29ae7c4 MediaWiki:Common.js 8 67 1453 590 2024-04-12T21:43:05Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; document.body.appendChild(backToTopButton); window.addEventListener('scroll', function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); c683371d05d542269faf889d6af5049f38633da6 1454 1453 2024-04-12T21:45:09Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ <script> // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; document.body.appendChild(backToTopButton); window.addEventListener('scroll', function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); </script> df20a0407425ebe6a04e510cd4c392b283d71af0 1455 1454 2024-04-12T21:46:08Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ <script> // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = 0; backToTopButton.style.left = 0; document.body.appendChild(backToTopButton); window.addEventListener('scroll', function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); </script> 2853e7fd3d22e36a46fc20735795cbfb55ec87d7 1456 1455 2024-04-12T21:46:44Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = 0; backToTopButton.style.left = 0; document.body.appendChild(backToTopButton); window.addEventListener('scroll', function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); f1830e3174755a0919b59f0d428be641ba68b17c 1458 1456 2024-04-12T21:49:07Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = 0; backToTopButton.style.left = 0; backToTopButton.style.position = fixed; document.body.appendChild(backToTopButton); window.addEventListener('scroll', function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); 66c0e0baf2776f0815289d929363d8f255e1f54e 1459 1458 2024-04-12T21:49:14Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = 0; backToTopButton.style.left = 0; backToTopButton.style.position = "fixed"; document.body.appendChild(backToTopButton); window.addEventListener('scroll', function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); f0374fd81d3599e99be76a6bb67fff279b5c9d9c 1460 1459 2024-04-12T21:50:10Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = 0; backToTopButton.style.left = 0; backToTopButton.style.position = "fixed"; backToTopButton.style.fontSize = "2em"; backToTopButton.style.fontWeight = "bold"; document.body.appendChild(backToTopButton); window.addEventListener('scroll', function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); 65b2afb82a07938920f9b0225e1823bda18cf44d 1462 1460 2024-04-12T21:50:53Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = "1rem"; backToTopButton.style.left = "1rem"; backToTopButton.style.position = "fixed"; backToTopButton.style.fontSize = "2em"; backToTopButton.style.fontWeight = "bold"; backToTopButton.style.width = "2rem"; backToTopButton.style.height = "2rem" document.body.appendChild(backToTopButton); window.addEventListener('scroll', function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); 4b813579cd766a6af7f3cf9d5996aeb5ab69063f 1463 1462 2024-04-12T21:51:18Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = "1rem"; backToTopButton.style.left = "1rem"; backToTopButton.style.position = "fixed"; backToTopButton.style.fontSize = "2em"; backToTopButton.style.fontWeight = "bold"; backToTopButton.style.width = "3rem"; backToTopButton.style.height = "3rem" document.body.appendChild(backToTopButton); window.addEventListener('scroll', function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); 11cb0429200dae81fd6688bb6038cabb85c9480d 1464 1463 2024-04-12T21:51:52Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = "1rem"; backToTopButton.style.left = "1rem"; backToTopButton.style.position = "fixed"; backToTopButton.style.fontSize = "2em"; backToTopButton.style.fontWeight = "bold"; backToTopButton.style.width = "3rem"; backToTopButton.style.height = "3rem" backToTopButton.style.padding = "4px" document.body.appendChild(backToTopButton); window.addEventListener('scroll', function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); 7f9d309ddf5e9c9509ae2d5e18bf423e7be53089 1465 1464 2024-04-12T21:53:21Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = "1rem"; backToTopButton.style.left = "1rem"; backToTopButton.style.position = "fixed"; backToTopButton.style.fontSize = "2em"; backToTopButton.style.fontWeight = "bold"; backToTopButton.style.width = "3rem"; backToTopButton.style.height = "3rem" backToTopButton.style.padding = "4px" document.body.appendChild(backToTopButton); var eventListeners = ['scroll', 'DOMContentLoaded']; eventListeners.forEach(listener, function(){ window.addEventListener(listener, function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); } backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); 9322d836fb1ecdf2b5d504e3c768fa3d7ce0dfa9 1466 1465 2024-04-12T21:53:56Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = "1rem"; backToTopButton.style.left = "1rem"; backToTopButton.style.position = "fixed"; backToTopButton.style.fontSize = "2em"; backToTopButton.style.fontWeight = "bold"; backToTopButton.style.width = "3rem"; backToTopButton.style.height = "3rem" backToTopButton.style.padding = "4px" document.body.appendChild(backToTopButton); var eventListeners = ['scroll', 'DOMContentLoaded']; eventListeners.forEach(listener, function(){ window.addEventListener(listener, function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); )} backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); 5c7353b9eb6f97bee977442db51caa9d6ac0d92c 1467 1466 2024-04-12T21:54:23Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = "1rem"; backToTopButton.style.left = "1rem"; backToTopButton.style.position = "fixed"; backToTopButton.style.fontSize = "2em"; backToTopButton.style.fontWeight = "bold"; backToTopButton.style.width = "3rem"; backToTopButton.style.height = "3rem" backToTopButton.style.padding = "4px" document.body.appendChild(backToTopButton); var eventListeners = ['scroll', 'DOMContentLoaded']; eventListeners.forEach(listener, function(){ window.addEventListener(listener, function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); }) backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); 1bc647d999070c1475e96d75e0120928949ef29b 1468 1467 2024-04-12T21:56:12Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = "1rem"; backToTopButton.style.left = "1rem"; backToTopButton.style.position = "fixed"; backToTopButton.style.fontSize = "2em"; backToTopButton.style.fontWeight = "bold"; backToTopButton.style.width = "3rem"; backToTopButton.style.height = "3rem" backToTopButton.style.padding = "4px" document.body.appendChild(backToTopButton); var eventListeners = ['scroll', 'DOMContentLoaded']; eventListeners.forEach(function(listener) { window.addEventListener(listener, function() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } }); }); backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); f80fd9aa91411d6935780b169a944e6a49edd5dc 1469 1468 2024-04-12T21:57:09Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = "1rem"; backToTopButton.style.left = "1rem"; backToTopButton.style.position = "fixed"; backToTopButton.style.fontSize = "2em"; backToTopButton.style.fontWeight = "bold"; backToTopButton.style.width = "3rem"; backToTopButton.style.height = "3rem"; backToTopButton.style.padding = "4px"; document.body.appendChild(backToTopButton); function updateBackToTopButton() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } } var eventListeners = ['scroll', 'DOMContentLoaded']; eventListeners.forEach(function(listener) { window.addEventListener(listener, updateBackToTopButton); // Attach event listener }); updateBackToTopButton(); // Call the function once to set initial button display backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); 12d007961936d0562a05fbf7f83d191c486e8297 1470 1469 2024-04-12T21:57:43Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = "1rem"; backToTopButton.style.left = "1rem"; backToTopButton.style.position = "fixed"; backToTopButton.style.fontSize = "1.5em"; backToTopButton.style.fontWeight = "bold"; backToTopButton.style.width = "2rem"; backToTopButton.style.height = "2rem"; backToTopButton.style.padding = "4px"; document.body.appendChild(backToTopButton); function updateBackToTopButton() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } } var eventListeners = ['scroll', 'DOMContentLoaded']; eventListeners.forEach(function(listener) { window.addEventListener(listener, updateBackToTopButton); // Attach event listener }); updateBackToTopButton(); // Call the function once to set initial button display backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); 3a6b00bb41d0b7a10f8602799f0c47cb5523495c 1471 1470 2024-04-12T21:58:29Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = '↑'; backToTopButton.style.bottom = "1rem"; backToTopButton.style.left = "1rem"; backToTopButton.style.position = "fixed"; backToTopButton.style.fontSize = "2em"; backToTopButton.style.fontWeight = "bold"; backToTopButton.style.width = "3rem"; backToTopButton.style.height = "3rem"; backToTopButton.style.padding = "4px"; // Center the arrow vertically and horizontally within the button backToTopButton.style.textAlign = "center"; backToTopButton.style.lineHeight = backToTopButton.style.height; document.body.appendChild(backToTopButton); function updateBackToTopButton() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } } var eventListeners = ['scroll', 'DOMContentLoaded']; eventListeners.forEach(function(listener) { window.addEventListener(listener, updateBackToTopButton); // Attach event listener }); updateBackToTopButton(); // Call the function once to set initial button display backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); f18f65138be57cece9816cebfbec96c17a70e14b 1472 1471 2024-04-12T21:59:36Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = 'Top'; backToTopButton.style.bottom = "1rem"; backToTopButton.style.left = "1rem"; backToTopButton.style.position = "fixed"; backToTopButton.style.fontSize = "1.5em"; backToTopButton.style.fontWeight = "bold"; // Center the arrow vertically and horizontally within the button backToTopButton.style.textAlign = "center"; backToTopButton.style.lineHeight = backToTopButton.style.height; document.body.appendChild(backToTopButton); function updateBackToTopButton() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } } var eventListeners = ['scroll', 'DOMContentLoaded']; eventListeners.forEach(function(listener) { window.addEventListener(listener, updateBackToTopButton); // Attach event listener }); updateBackToTopButton(); // Call the function once to set initial button display backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); e4ae91ca8c7b8897127e17afebb66759ecde27a1 1473 1472 2024-04-12T21:59:49Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = 'Top'; backToTopButton.style.bottom = "1rem"; backToTopButton.style.left = "1rem"; backToTopButton.style.position = "fixed"; // Center the arrow vertically and horizontally within the button backToTopButton.style.textAlign = "center"; backToTopButton.style.lineHeight = backToTopButton.style.height; document.body.appendChild(backToTopButton); function updateBackToTopButton() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } } var eventListeners = ['scroll', 'DOMContentLoaded']; eventListeners.forEach(function(listener) { window.addEventListener(listener, updateBackToTopButton); // Attach event listener }); updateBackToTopButton(); // Call the function once to set initial button display backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); 9e42f1ad67696e4c318b55e7bbc9b9f97562ed9e 1474 1473 2024-04-12T22:00:12Z Rice 1 javascript text/javascript /* Any JavaScript here will be loaded for all users on every page load. */ // Create the back to top button var backToTopButton = document.createElement('button'); backToTopButton.id = 'back-to-top-btn'; backToTopButton.className = 'back-to-top-btn'; backToTopButton.title = 'Back to Top'; backToTopButton.textContent = 'Back to Top'; backToTopButton.style.bottom = "1rem"; backToTopButton.style.left = "1rem"; backToTopButton.style.position = "fixed"; // Center the arrow vertically and horizontally within the button backToTopButton.style.textAlign = "center"; backToTopButton.style.lineHeight = backToTopButton.style.height; document.body.appendChild(backToTopButton); function updateBackToTopButton() { if (window.pageYOffset > 0) { backToTopButton.style.display = 'block'; } else { backToTopButton.style.display = 'none'; } } var eventListeners = ['scroll', 'DOMContentLoaded']; eventListeners.forEach(function(listener) { window.addEventListener(listener, updateBackToTopButton); // Attach event listener }); updateBackToTopButton(); // Call the function once to set initial button display backToTopButton.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); 626ff833fd4bf2bcfae9edb0999ca6918b6f941e File:Plover controller diagram.png 6 1150 1475 2024-04-12T22:01:08Z Rice 1 wikitext text/x-wiki plover_controller diagram 694cf17b0fc9ba3b150da478eb42be6df20d0ba4 Dictionary format 0 11 1549 595 2024-04-13T06:32:08Z Neu neutral 941 /* Sending Symbols */ developer.mozilla.org/en-US/docs/Web/HTML/Element/kbd #representing_onscreen_input_options wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}} == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. {{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}} === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === json === The standard Plover format. Described at Dictionary format. === rtf (aka CRE) === A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm . RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications. === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "<kbd><samp>Add Translation</samp></kbd>" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. { "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" } For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote> [[Category:Plover]] 11cc01ab3f1c1b2b6922b7c6b8d6eb7e0361db60 Plugins 0 45 1560 266 2024-04-13T07:16:25Z Neu neutral 941 /* Windows */ developer.mozilla.org/en-US/docs/Web/HTML/Element/kbd #representing_onscreen_input_options wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to <code>Tools → Plugins Manager</code> * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins <blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app # Select "<kbd><samp>Open file location</samp></kbd>" # In the folder, hold down Shift and right click # Select "<kbd><samp>Open PowerShell window here</samp></kbd>" Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Types of Plugins == === Dictionary Plugins === Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Machine Plugins === Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards. '''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.''' === System Plugins === System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean). '''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].''' === Command Plugins === Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. '''See the plugin's own documentation for setup details.''' === Macro and Meta Plugins === Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output. '''To use macro and meta plugins, see the plugin's own documentation for setting up entries.''' === GUI Plugins === GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Extension Plugins === Extension plugins can be used to execute arbitrary code. '''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] fefdf60372b09257ec6ee9c766badf7b14066186 Plover Wiki/fr 0 132 1610 585 2024-04-13T18:51:21Z Rice 1 Identified as spam by the SmiteSpam extension. wikitext text/x-wiki <languages /> [[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]] Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute. Plover fonctionne sous Windows, macOS et Linux. [[Beginner's Guide|'''Guide du débutant : Démarrez avec Plover''']] <div lang="en" dir="ltr" class="mw-content-ltr"> == The Open Steno Project == Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options. </div> == Contribuer au Wiki == Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée. <div lang="en" dir="ltr" class="mw-content-ltr"> === Translating the Wiki === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> The MediaWiki Translation extension is used for internationalizing the Wiki. There is a [[Plover Wiki/Translation instructions|write-up]] on instructions for translation. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> <hr /> </div> [[Spécial :ConfirmEmail|Confirmez votre adresse e-mail ici.]] Assurez-vous de vérifier votre dossier spam. 168ab30a705084a99dca4b0effd57235ec20a3e8 Built-in tools 0 12 1641 122 2024-04-17T06:05:43Z Neu neutral 941 /* Stroke suggestions */ HTML/Element/kbd #representing_onscreen_input_options wikitext text/x-wiki Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window. == Configure Plover == The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things. == Paper tape == Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "show paper tape" checkbox in the interface tab. == Stroke suggestions == When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "<kbd><samp>show suggestions</samp></kbd>" checkbox in the interface tab of the configuration window. == Lookup tool == A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]]. == Plugins manager == The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover. Some plugins are themselves tools. == Main window == The main window can be used to reconnect the machine, enable and disable output and manage dictionaries. === Dictionaries field === This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown: * A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list. * If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default. * A checkbox to enable and disable the dictionary. * The name of the dictionary. Below the list of dictionaries, there are buttons to do the following actions: * Undo the last dictionary adding, deleting or reordering operation. * Use the [[Built-in Tools#Dictionary editor|dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in. * Remove a dictionary from the list. * Add a dictionary to the list. * [[Built-in Tools#Add translation dialog|Add an entry]] to the selected dictionary. * Move the selected dictionaries up on the list. * Move the selected dictionaries down on the list. == Dictionary editor == The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries. At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field. The strokes and translations on the list are editable. Below the list are three buttons: * Undo last action. * Remove selected entry/entries. * Add a new entry. == Add translation dialog == A dialog to add an entry to a dictionary. It has three fields: * Which dictionary to add an entry to. * The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries. * What they should translate to. Below this field you should see any strokes already mapped to the translation. * A cancel button that closes the dialog. * An okay button that adds the entry and closes the dialog. [[Category:Plover]] 58e043a5c81b122eb9b15234597d026a9429cf6b 1642 1641 2024-04-17T06:06:35Z Neu neutral 941 /* Paper tape */ HTML/Element/kbd #representing_onscreen_input_options wikitext text/x-wiki Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window. == Configure Plover == The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things. == Paper tape == Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "<kbd><samp>show paper tape</samp></kbd>" checkbox in the interface tab. == Stroke suggestions == When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "<kbd><samp>show suggestions</samp></kbd>" checkbox in the interface tab of the configuration window. == Lookup tool == A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]]. == Plugins manager == The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover. Some plugins are themselves tools. == Main window == The main window can be used to reconnect the machine, enable and disable output and manage dictionaries. === Dictionaries field === This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown: * A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list. * If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default. * A checkbox to enable and disable the dictionary. * The name of the dictionary. Below the list of dictionaries, there are buttons to do the following actions: * Undo the last dictionary adding, deleting or reordering operation. * Use the [[Built-in Tools#Dictionary editor|dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in. * Remove a dictionary from the list. * Add a dictionary to the list. * [[Built-in Tools#Add translation dialog|Add an entry]] to the selected dictionary. * Move the selected dictionaries up on the list. * Move the selected dictionaries down on the list. == Dictionary editor == The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries. At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field. The strokes and translations on the list are editable. Below the list are three buttons: * Undo last action. * Remove selected entry/entries. * Add a new entry. == Add translation dialog == A dialog to add an entry to a dictionary. It has three fields: * Which dictionary to add an entry to. * The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries. * What they should translate to. Below this field you should see any strokes already mapped to the translation. * A cancel button that closes the dialog. * An okay button that adds the entry and closes the dialog. [[Category:Plover]] afadc021f88b141f169df7fb7d64faef19007373 1646 1642 2024-04-17T06:30:21Z Neu neutral 941 /* Dictionary editor */ oh my God oh my Lord!, SVG! and.. <br /> HTML/Element/kbd #representing_onscreen_input_options wikitext text/x-wiki Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window. == Configure Plover == The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things. == Paper tape == Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "<kbd><samp>show paper tape</samp></kbd>" checkbox in the interface tab. == Stroke suggestions == When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "<kbd><samp>show suggestions</samp></kbd>" checkbox in the interface tab of the configuration window. == Lookup tool == A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]]. == Plugins manager == The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover. Some plugins are themselves tools. == Main window == The main window can be used to reconnect the machine, enable and disable output and manage dictionaries. === Dictionaries field === This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown: * A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list. * If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default. * A checkbox to enable and disable the dictionary. * The name of the dictionary. Below the list of dictionaries, there are buttons to do the following actions: * Undo the last dictionary adding, deleting or reordering operation. * Use the [[Built-in Tools#Dictionary editor|dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in. * Remove a dictionary from the list. * Add a dictionary to the list. * [[Built-in Tools#Add translation dialog|Add an entry]] to the selected dictionary. * Move the selected dictionaries up on the list. * Move the selected dictionaries down on the list. == Dictionary editor == The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries. At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "<kbd><samp>filter by strokes</samp></kbd>" field. And to get entries that map to translations containing specific words, use the "<kbd><samp>filter by translation</samp></kbd>" field. The strokes and translations on the list are editable. Listed below are three buttons that can be found at the bottom left-hand side: # [[File:Undo.svg|link=|32px]] '''Undo''' last action. # [[File:Remove.svg|link=|32px]] '''Remove''' selected entry/entries. # [[File:Add.svg|link=|32px]] '''Add''' a new entry. == Add translation dialog == A dialog to add an entry to a dictionary. It has three fields: * Which dictionary to add an entry to. * The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries. * What they should translate to. Below this field you should see any strokes already mapped to the translation. * A cancel button that closes the dialog. * An okay button that adds the entry and closes the dialog. [[Category:Plover]] 43f24f02caaa8e8df6686ed911b41a9731262483 File:Remove.svg 6 1293 1643 2024-04-17T06:20:52Z Neu neutral 941 plucked from the main Plover install files on local love... wikitext text/x-wiki == Summary == plucked from the main Plover install files on local love... 037a11203807a17f8a614a69ada78acbbb709dfe File:Add.svg 6 1294 1644 2024-04-17T06:21:12Z Neu neutral 941 plucked from the main Plover install files on local love... wikitext text/x-wiki == Summary == plucked from the main Plover install files on local love... 037a11203807a17f8a614a69ada78acbbb709dfe File:Undo.svg 6 1295 1645 2024-04-17T06:22:49Z Neu neutral 941 plucked from the main Plover install files on local love... Alḥamdulillāh rabbi l-ʿālamīn! p.s: may I has this toy plz? <!--https://www.mediawiki.org/wiki/Extension:UploadWizard--> wikitext text/x-wiki == Summary == plucked from the main Plover install files on local love... Alḥamdulillāh rabbi l-ʿālamīn! p.s: may I has this toy plz? <!--https://www.mediawiki.org/wiki/Extension:UploadWizard--> 4ee89f6b114bca683b974b509233a23805558253 Beginner's Guide 0 4 1672 609 2024-04-19T00:57:49Z Neu neutral 941 /* Keyboard */ [[File:Output=Enabled.png|frameless|right|link=| wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. <!--T:18--> See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|None|Thumb|Demonstration of the arpeggiate function.]] <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|none|thumb]] <!--T:20--> <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> See below for a demonstration of rolling: [[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]] <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <!--T:31--> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === <!--T:32--> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: <!--T:33--> * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] <!--T:34--> You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling machines designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <!--T:44--> <span id="keyboard"></span> === Keyboard === <!--T:45--> By default, Plover will use your keyboard as its input device. <!--T:46--> [[File:Output=Enabled.png|frameless|right|link=| a picture of the obvious , inSRUBGT you instructing to enable Plover prior to using it! <br />Say, "Trust me, this even got some of the very best... lol]] # Run Plover. # Click the Output: '''<kbd><samp>Enabled</samp></kbd>''' radio button. <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. <!--T:50--> This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:64--> <span id="stenography-machine"></span> === Stenography machine === <!--T:65--> <!--T:66--> Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: <!--T:67--> # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. <!--T:68--> See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:78--> [[Category:Plover]] </translate> 15524996372666ad98410bd0c1edabedc077ccb2 1673 1672 2024-04-19T01:27:20Z Neu neutral 941 /* Adapt a keyboard for steno use */ turn towards https://plover.wiki/index.php/Supported_Hardware#Keytoppers https://plover.wiki/index.php/Supported_Hardware#keycaps wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. <!--T:18--> See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|None|Thumb|Demonstration of the arpeggiate function.]] <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|none|thumb]] <!--T:20--> <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> See below for a demonstration of rolling: [[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]] <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] <!--T:31--> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === <!--T:32--> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: <!--T:33--> * [https://plover.wiki/index.php/Supported_Hardware#Keytoppers Keytoppers] * [https://plover.wiki/index.php/Supported_Hardware#keycaps Keycaps] <!--T:34--> You can also use [https://plover.wiki/index.php/Supported_Hardware#NKRO_keyboards_with_an_ortholinear_layout a keyboard with an ortholinear layout]. <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling machines designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <!--T:44--> <span id="keyboard"></span> === Keyboard === <!--T:45--> By default, Plover will use your keyboard as its input device. <!--T:46--> [[File:Output=Enabled.png|frameless|right|link=| a picture of the obvious , inSRUBGT you instructing to enable Plover prior to using it! <br />Say, "Trust me, this even got some of the very best... lol]] # Run Plover. # Click the Output: '''<kbd><samp>Enabled</samp></kbd>''' radio button. <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. <!--T:50--> This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:64--> <span id="stenography-machine"></span> === Stenography machine === <!--T:65--> <!--T:66--> Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: <!--T:67--> # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. <!--T:68--> See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:78--> [[Category:Plover]] </translate> 33822916c92bbe0fe9c04c248cbf1e6f4d1f8362 1690 1673 2024-04-19T12:34:07Z Neu neutral 941 u+fdfd, Point links internally... have new lines for unordered list to parse... Alhamdulillah... wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. <!--T:18--> See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|None|Thumb|Demonstration of the arpeggiate function.]] <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|none|thumb]] <!--T:20--> <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> See below for a demonstration of rolling: [[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]] <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See the [[Supported Hardware]] page for a [https://plover.wiki/index.php/Supported_Hardware#Known_supported_keyboards list of supported keyboards]. * See also: [https://plover.wiki/index.php/Supported_Hardware#Which_type_of_key_switch_should_I_choose? Which type of key switch should I choose?] <!--T:31--> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === <!--T:32--> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: <!--T:33--> * [https://plover.wiki/index.php/Supported_Hardware#Keytoppers Keytoppers] * [https://plover.wiki/index.php/Supported_Hardware#keycaps Keycaps] <!--T:34--> You can also use [https://plover.wiki/index.php/Supported_Hardware#NKRO_keyboards_with_an_ortholinear_layout a keyboard with an ortholinear layout]. <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling machines designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [https://plover.wiki/index.php/Supported_Hardware#Dedicated_machines_designed_for_use_with_Plover Dedicated machines designed for use with Plover]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <!--T:44--> <span id="keyboard"></span> === Keyboard === <!--T:45--> By default, Plover will use your keyboard as its input device. <!--T:46--> [[File:Output=Enabled.png|frameless|right|link=| a picture of the obvious , inSRUBGT you instructing to enable Plover prior to using it! <br />Say, "Trust me, this even got some of the very best... lol]] # Run Plover. # Click the Output: '''<kbd><samp>Enabled</samp></kbd>''' radio button. <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. <!--T:50--> This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:64--> <span id="stenography-machine"></span> === Stenography machine === <!--T:65--> <!--T:66--> Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: <!--T:67--> # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. <!--T:68--> See [[Supported_Hardware#Supported_protocols| Supported protocols]] for more information. <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:78--> [[Category:Plover]] </translate> 9c35128b57c59eea44189aa7f773610c8fcdac27 Talk:Plugins 1 76 1686 261 2024-04-19T10:05:14Z Neu neutral 941 /* Noobs need not SKR-L to the other half of the page! */ new section wikitext text/x-wiki == Plugins manager usage screenshots == Right now, the instructions for using the plugins manager feels very busy. Should we remove the screenshots and replace them with a video? == Noobs need not SKR-L to the other half of the page! == '''Somebody, do something!''' (S-B TKO S-G TP-BG)--[[User:Neu neutral|Neu neutral]] ([[User talk:Neu neutral|talk]]) 10:05, 19 April 2024 (UTC) f8d954e0eafa194feaffd67cbedcc33c35d0be2d Installation Guide 0 8 1691 512 2024-04-19T13:00:08Z Neu neutral 941 u+fdfd, Point links internally... Alhamdulillah... wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} <!--T:7--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. <!--T:12--> {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == <!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === <!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == <!--T:27--> <!--T:28--> Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported-Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> d1fdfc4d38bba677258b7ecfa0614f05270f57f1 1693 1691 2024-04-19T13:13:27Z Neu neutral 941 u+fdfd, Point links internally... Alhamdulillah... wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} <!--T:7--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. <!--T:12--> {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == <!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === <!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == <!--T:27--> <!--T:28--> Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> 58ffc3ef18fbe0eaf2bd169aa175448687da0006 Troubleshooting issues 0 14 1692 298 2024-04-19T13:10:11Z Neu neutral 941 u+fdfd, Point links internally... Alḥamdulillāh rabbi l-ʿālamīn!!! wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate| arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span> === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == If you’re running Plover 4.x and are missing the plugins manager or it’s not working as expected, you can try [[Plugins#manually-installing-plugins |manually installing plugins]]<span id="dictionary-issues"></span> == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == <span id="plover-does-not-run"></span> === Plover does not run === <ul> <li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p> <ul> <li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code> </li> <li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security &amp; Privacy &gt; Privacy &gt; Accessibility.</p> <p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li> <li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p> <p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p> <p>There are several ways you can try to fix them, from least destructive to most destructive:</p> <ol style="list-style-type: decimal;"> <li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li> <li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications &gt; Utilities &gt; Terminal.app), copy/paste the following command and press Enter:</p> <pre>sudo tccutil reset Accessibility</pre> <p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li> <li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p> <pre>sudo tccutil reset All</pre></li> <li><p>Alternatively, as a debugging step, [[Invoke_Plover_from_the_Command_Line| invoke Plover in the terminal]] with the command</p> <pre>/Applications/Plover.app/Contents/MacOS/Plover</pre> <p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol> </li> <li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul> </li></ul><span id="unrecognized-keystrokes"></span> === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == <span id="missing-or-jumbled-output"></span> === Missing or jumbled output === * IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>).<span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span> === Linux dynamic keyboard layout switching is not working === * Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].<span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span> === Delayed/slow output when using gnome-shell and the keyboard machine === * It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. d4df42570389d9cb365dc0bb395ea2f72bb2e6d9 File:Infoinfo.svg 6 1323 1694 2024-04-19T13:32:01Z Neu neutral 941 infoinfo.svg 32 × 32, 923 bytes wikitext text/x-wiki == Summary == infoinfo.svg 32 × 32, 923 bytes 141bdb270c65cfee62bbb89ac12a3205fbdb8e77 Dictionary format 0 11 1697 1549 2024-04-19T13:38:16Z Neu neutral 941 /* Summary of suggested commands you can cut and paste into your dictionary */ A {{Info-Info|text= wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using _dictionaries_ * symbol, emoji, software command, or a meta command for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}} == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. {{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}} === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === json === The standard Plover format. Described at Dictionary format. === rtf (aka CRE) === A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm . RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications. === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "<kbd><samp>Add Translation</samp></kbd>" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. { "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" } For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>{{Info-Info|text=''Note:'' The final entry '''must not''' have a trailing comma.}}</blockquote> [[Category:Plover]] 862a64bbe44c5df834386deeebd39c3cdb463202 1916 1697 2024-05-07T11:02:09Z Neu neutral 941 /* About Strokes and Dictionaries */ u+fdfd made another list item off this one item, wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using ''dictionaries'' * with Plover, outputs are not limited to characters and punctuation symbols... Yes, a real stenographer chords emoji😅 * Steno machines makes use of either defined software command, or a meta command, for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}} == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. {{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}} === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === json === The standard Plover format. Described at Dictionary format. === rtf (aka CRE) === A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm . RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications. === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "<kbd><samp>Add Translation</samp></kbd>" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. { "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" } For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: * JSON: how the entry is stored in the JSON file. * Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4) * Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. * Plover output: what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>{{Info-Info|text=''Note:'' The final entry '''must not''' have a trailing comma.}}</blockquote> [[Category:Plover]] bdfb9a2f3cf91c0ddf842223f425d60ac084aa44 1974 1916 2024-05-20T07:39:30Z Neu neutral 941 /* Escaping Special Characters */ reformat into definition list wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using ''dictionaries'' * with Plover, outputs are not limited to characters and punctuation symbols... Yes, a real stenographer chords emoji😅 * Steno machines makes use of either defined software command, or a meta command, for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}} == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. {{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}} === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === json === The standard Plover format. Described at Dictionary format. === rtf (aka CRE) === A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm . RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications. === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "<kbd><samp>Add Translation</samp></kbd>" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. { "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" } For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/ [[File:Translation add.svg|link=|32px]][[Built-in_Tools#Add_translation_dialog|Add translation feature]], you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: ; '''JSON:''' :how the entry is stored in the JSON file. ; '''Plover show:''' :how the entry is displayed in Plover [[File:Translation add.svg|link=|32px]] "[[Built-in_Tools#Add_translation_dialog|Add translation]]" dialog. (version 4) ; '''Plover input:''' :how the entry can be added to the dictionary using Plover "[[Built-in_Tools#Add_translation_dialog|Add translation]]" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. ; '''Plover output:''' :what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>{{Info-Info|text=''Note:'' The final entry '''must not''' have a trailing comma.}}</blockquote> [[Category:Plover]] bb68d3c8cf5c08da85c5b608072fe66faf52b5b3 FAQ 0 15 1698 138 2024-04-20T12:00:26Z Neu neutral 941 u+fdfd, Point links internally... Alhamdulillah... wikitext text/x-wiki == Plover == === What is stenography? === <youtube>62l64Acfidc</youtube> Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Typing World Record |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |360 WPM |} In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#How long does it take to learn?|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno. Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]]. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here]. === Who's responsible for Plover's development? === Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin. === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu]. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor]. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)] |[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)] |[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)] |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)] |[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)] |[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)] |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing) the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the [[The_Steno_Community |Plover discord]], people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]]) # Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently. === Will stenography be replaced with automatic voice recognition? === Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these [[The Steno Community|links to the community]]. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code] * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues] * [[Plover Wiki#Contributing to the Wiki|Editing this wiki]] * [[The Steno Community|Getting involved in the community]] * [https://www.openstenoproject.org/donate/ Donating money] * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]]. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno. * Lighter keys, so it's less fatiguing. [[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]]. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]]. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key [https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary) * [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free * [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji === Can I use Plover for programming? === Yes, and many people do! For example: * The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo] * [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo] * Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code] To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols. ** Dictionary collections which include some programming related dictionaries *** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries *** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site]) *** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries] *** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries] *** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries] *** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries] * For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made. If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the [[glossary]]. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72]) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]]. == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="https://cdn.cloudflare.steamstatic.com/steam/apps/449000/header.jpg?t=1567716732" alt="Steno Arcade" /> [http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. <youtube>eSU5JlVXT1A</youtube> === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] b7bc49f7896ac7fe0f074277ec71703650dd55ef Invoke Plover from the command line 0 49 1718 600 2024-04-23T04:08:56Z Neu neutral 941 u+fdfd,__TOC__ for quick page navigation!!! wikitext text/x-wiki __TOC__ Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line. The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.) In the example below, assume that the following command should be executed: plover -s plover_plugins install plover-stenograph-usb To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly. See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference]<sup>[external link]</sup> for other commands that can be executed. == Windows == # Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location" [[File:Windows plover shortcut right click menu.png|frameless|623x623px]] # You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here." [[File:Shift right click menu on plover console.png|frameless|617x617px]] # Type in the following command: .\plover_console.exe -s plover_plugins install plover-stenograph-usb [[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]] # # Press Enter to run the command. [[File:Install plugin output in powershell.png|frameless|675x675px]] == Mac == # Open the Terminal app # Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter: /Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb == Linux (AppImage) == # Execute the command in the command-line: plover.AppImage -s plover_plugins install plover-stenograph-usb 4836717de7b67632f4f743f0b9645e5955b44581 1719 1718 2024-04-23T04:38:07Z Neu neutral 941 all external links are with the symbol → → plover.wiki/resources/src/mediawiki.skinning/images/external-ltr.svg?59558 wikitext text/x-wiki __TOC__ Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line. The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.) In the example below, assume that the following command should be executed: plover -s plover_plugins install plover-stenograph-usb To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly. See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference] for other commands that can be executed. == Windows == # Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location" [[File:Windows plover shortcut right click menu.png|frameless|623x623px]] # You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here." [[File:Shift right click menu on plover console.png|frameless|617x617px]] # Type in the following command: .\plover_console.exe -s plover_plugins install plover-stenograph-usb [[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]] # # Press Enter to run the command. [[File:Install plugin output in powershell.png|frameless|675x675px]] == Mac == # Open the Terminal app # Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter: /Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb == Linux (AppImage) == # Execute the command in the command-line: plover.AppImage -s plover_plugins install plover-stenograph-usb 62f5681d72e2fb6074404560880348feddd183f9 2123 1719 2024-06-15T15:54:07Z Aerick 9 /* Linux (AppImage) */ wikitext text/x-wiki __TOC__ Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line. The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.) In the example below, assume that the following command should be executed: plover -s plover_plugins install plover-stenograph-usb To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly. See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference] for other commands that can be executed. == Windows == # Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location" [[File:Windows plover shortcut right click menu.png|frameless|623x623px]] # You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here." [[File:Shift right click menu on plover console.png|frameless|617x617px]] # Type in the following command: .\plover_console.exe -s plover_plugins install plover-stenograph-usb [[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]] # # Press Enter to run the command. [[File:Install plugin output in powershell.png|frameless|675x675px]] == Mac == # Open the Terminal app # Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter: /Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb == Linux (AppImage) == # Navigate to the folder containing the AppImage # Execute the command in the command-line (note that the filename depends on the version): ./plover.AppImage -s plover_plugins install plover-stenograph-usb 47718a81b383dd3981e91687286e82c90bf98c12 Open Steno Project timeline 0 13 1771 123 2024-04-25T10:22:44Z Neu neutral 941 /* 14 August 2023 */ Di of didoesdigital completely rewrites the website's Stenography Lesson Generator wikitext text/x-wiki The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. === September 2005 to March 2007 (18 months) === <blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute. === 2007 === <blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. === 2008 === <blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? === October 2009 === <blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. === June 2010 === <blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series. === October 2010 === <blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. === December 2010 === <blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. === April 2011 === <blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade). === October 2011 === <blockquote>Plover</blockquote>Hesky Fisher starts working on Plover. === May 2012 === <blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. === April 2013 === <blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. === July 2013 === <blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. === August 2013 === <blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus]. === September 2013 === <blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. === January 2014 === <blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects. === April 2014 === <blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard. === Summer 2015 === <blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. === August 2015 === <blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. === September 2015 === <blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. === December 2015 === <blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches. === March 2016 === <blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. === April 2016 === <blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === October 2016 === <blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig]. === November 2016 === <blockquote>Plover</blockquote>Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. === The future - 2017 and onwards === Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. === January 2019 === <blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. === February 2021 === <blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. === April 2021 === <blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them. === July 2021 === <blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. === 14 August 2023 === <blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator] [[Category:Plover]] 1ef43b90c6cc20da53fbfc7023f01a118a89f674 1772 1771 2024-04-25T10:47:32Z Neu neutral 941 A StenoToppers! as a part of the project's historical ! wikitext text/x-wiki The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. === September 2005 to March 2007 (18 months) === <blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute. === 2007 === <blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. === 2008 === <blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? === October 2009 === <blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. === June 2010 === <blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series. === October 2010 === <blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. === December 2010 === <blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. === April 2011 === <blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade). === October 2011 === <blockquote>Plover</blockquote>Hesky Fisher starts working on Plover. === May 2012 === <blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. === April 2013 === <blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. === July 2013 === <blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. === August 2013 === <blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus]. === September 2013 === <blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. === January 2014 === <blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects. === April 2014 === <blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard. === Summer 2015 === <blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. === August 2015 === <blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. === September 2015 === <blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. === December 2015 === <blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches. === March 2016 === <blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. === April 2016 === <blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === October 2016 === <blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig]. === November 2016 === <blockquote>Plover</blockquote>Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === December 2016 === <blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed. '''The thumb keycap was also completed.''' === The future - 2017 and onwards === Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. === July 2017 === ==== 07 July 2017 T05:09:34Z ==== <blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information. === January 2019 === <blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. === February 2021 === <blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. === April 2021 === <blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them. === July 2021 === <blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. === August 2023 === ==== 14 August 2023 ==== <blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator] [[Category:Plover]] d9c82b7bb08a301d21a0abc6f902bb4c9c1a26ec 1773 1772 2024-04-25T11:06:47Z Neu neutral 941 A factual event that is unwritten by good sysop duty! (co-ordinated spam attack averted) wikitext text/x-wiki The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. === September 2005 to March 2007 (18 months) === <blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute. === 2007 === <blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. === 2008 === <blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? === October 2009 === <blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. === June 2010 === <blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series. === October 2010 === <blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. === December 2010 === <blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. === April 2011 === <blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade). === October 2011 === <blockquote>Plover</blockquote>Hesky Fisher starts working on Plover. === May 2012 === <blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. === April 2013 === <blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. === July 2013 === <blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. === August 2013 === <blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus]. === September 2013 === <blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. === January 2014 === <blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects. === April 2014 === <blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard. === Summer 2015 === <blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. === August 2015 === <blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. === September 2015 === <blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. === December 2015 === <blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches. === March 2016 === <blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. === April 2016 === <blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === October 2016 === <blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig]. === November 2016 === <blockquote>Plover</blockquote>Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === December 2016 === <blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed. '''The thumb keycap was also completed.''' === The future - 2017 and onwards === Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. === July 2017 === ==== 07 July 2017 T05:09:34Z ==== <blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information. === January 2019 === <blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. === February 2021 === <blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. === April 2021 === <blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them. === July 2021 === <blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. === August 2023 === ==== 14 August 2023 ==== <blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator] === April 2024 === ==== 15 April 2024 ==== <blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server. [[Category:Plover]] 148ba94892b32d481b568576914ed475b556dbb0 1774 1773 2024-04-26T00:47:40Z Neu neutral 941 A world's first steno playthrough of Doom typist wikitext text/x-wiki The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. === September 2005 to March 2007 (18 months) === <blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute. === 2007 === <blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. === 2008 === <blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? === October 2009 === <blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. === June 2010 === <blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series. === October 2010 === <blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. === December 2010 === <blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. === April 2011 === <blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade). === October 2011 === <blockquote>Plover</blockquote>Hesky Fisher starts working on Plover. === May 2012 === <blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. === April 2013 === <blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. === July 2013 === <blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. === August 2013 === <blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus]. === September 2013 === <blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. === January 2014 === <blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects. === April 2014 === <blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard. === Summer 2015 === <blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. === August 2015 === <blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. === September 2015 === <blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. === December 2015 === <blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches. === March 2016 === <blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. === April 2016 === <blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === October 2016 === <blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig]. === November 2016 === <blockquote>Plover</blockquote>Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === December 2016 === <blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed. '''The thumb keycap was also completed.''' === The future - 2017 and onwards === Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. === July 2017 === ==== 07 July 2017 T05:09:34Z ==== <blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information. === January 2019 === <blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. === February 2021 === <blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. === April 2021 === <blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them. === July 2021 === <blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. === June 2022 === ==== 7<sup>th</sup> June 2022 ==== <blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi. === August 2023 === ==== 14 August 2023 ==== <blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator] === April 2024 === ==== 15 April 2024 ==== <blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server. [[Category:Plover]] 2a35e1dbed7adbe7c3e0f267ba4764ab5cd491ca 1775 1774 2024-04-26T01:04:02Z Neu neutral 941 A Open Steno / Plover Meetup, 22 January 2022 wikitext text/x-wiki The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. === September 2005 to March 2007 (18 months) === <blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute. === 2007 === <blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. === 2008 === <blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? === October 2009 === <blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. === June 2010 === <blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series. === October 2010 === <blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. === December 2010 === <blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. === April 2011 === <blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade). === October 2011 === <blockquote>Plover</blockquote>Hesky Fisher starts working on Plover. === May 2012 === <blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. === April 2013 === <blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. === July 2013 === <blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. === August 2013 === <blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus]. === September 2013 === <blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. === January 2014 === <blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects. === April 2014 === <blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard. === Summer 2015 === <blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. === August 2015 === <blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. === September 2015 === <blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. === December 2015 === <blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches. === March 2016 === <blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. === April 2016 === <blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === October 2016 === <blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig]. === November 2016 === <blockquote>Plover</blockquote>Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === December 2016 === <blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed. '''The thumb keycap was also completed.''' === The future - 2017 and onwards === Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. === July 2017 === ==== 07 July 2017 T05:09:34Z ==== <blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information. === January 2019 === <blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. === February 2021 === <blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. === April 2021 === <blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them. === July 2021 === <blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. === January 2022 === ==== 22<sup>nd</sup> January 2022 ==== ===== Open Steno / Plover Meetup ===== <blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. --> === June 2022 === ==== 7<sup>th</sup> June 2022 ==== <blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi. === August 2023 === ==== 14 August 2023 ==== <blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator] === April 2024 === ==== 15 April 2024 ==== <blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server. [[Category:Plover]] d22e3cd8ca5612439d9b9570c77526039f7bf388 1776 1775 2024-04-26T01:26:45Z Neu neutral 941 A initial point of Art of Chording! wikitext text/x-wiki The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. === September 2005 to March 2007 (18 months) === <blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute. === 2007 === <blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. === 2008 === <blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? === October 2009 === <blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. === June 2010 === <blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series. === October 2010 === <blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. === December 2010 === <blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. === April 2011 === <blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade). === October 2011 === <blockquote>Plover</blockquote>Hesky Fisher starts working on Plover. === May 2012 === <blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. === April 2013 === <blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. === July 2013 === <blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. === August 2013 === <blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus]. === September 2013 === <blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. === January 2014 === <blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects. === April 2014 === <blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard. === Summer 2015 === <blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. === August 2015 === <blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. === September 2015 === <blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. === December 2015 === <blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches. === March 2016 === <blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. === April 2016 === <blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === October 2016 === <blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig]. === November 2016 === <blockquote>Plover</blockquote>Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === December 2016 === <blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed. '''The thumb keycap was also completed.''' === The future - 2017 and onwards === Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. === July 2017 === ==== 07 July 2017 T05:09:34Z ==== <blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information. === September 2018 === <blockquote>Textbook</blockquote>Ted Morin a self-taught hobbyist stenographer, begins work on Art of Chording! The entire book ''was written'' and is being written, exclusively using stenography. === January 2019 === <blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. === February 2021 === <blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. === April 2021 === <blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them. === July 2021 === <blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. === January 2022 === ==== 22<sup>nd</sup> January 2022 ==== ===== Open Steno / Plover Meetup ===== <blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. --> === June 2022 === ==== 7<sup>th</sup> June 2022 ==== <blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi. === August 2023 === ==== 14 August 2023 ==== <blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator] === April 2024 === ==== 15 April 2024 ==== <blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server. [[Category:Plover]] 1575b645aad3ec45e5a41dc34b9dc59e3176eca3 1777 1776 2024-04-26T01:27:36Z Neu neutral 941 /* September 2018 */ link to Art of Chording! wikitext text/x-wiki The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. === September 2005 to March 2007 (18 months) === <blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute. === 2007 === <blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. === 2008 === <blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? === October 2009 === <blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. === June 2010 === <blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series. === October 2010 === <blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. === December 2010 === <blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. === April 2011 === <blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade). === October 2011 === <blockquote>Plover</blockquote>Hesky Fisher starts working on Plover. === May 2012 === <blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. === April 2013 === <blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. === July 2013 === <blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. === August 2013 === <blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus]. === September 2013 === <blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. === January 2014 === <blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects. === April 2014 === <blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard. === Summer 2015 === <blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. === August 2015 === <blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. === September 2015 === <blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. === December 2015 === <blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches. === March 2016 === <blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. === April 2016 === <blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === October 2016 === <blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig]. === November 2016 === <blockquote>Plover</blockquote>Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === December 2016 === <blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed. '''The thumb keycap was also completed.''' === The future - 2017 and onwards === Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. === July 2017 === ==== 07 July 2017 T05:09:34Z ==== <blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information. === September 2018 === <blockquote>Textbook</blockquote>Ted Morin a self-taught hobbyist stenographer, begins work on [https://www.artofchording.com/ Art of Chording!] The entire book ''was written'' and is being written, exclusively using stenography. === January 2019 === <blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. === February 2021 === <blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. === April 2021 === <blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them. === July 2021 === <blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. === January 2022 === ==== 22<sup>nd</sup> January 2022 ==== ===== Open Steno / Plover Meetup ===== <blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. --> === June 2022 === ==== 7<sup>th</sup> June 2022 ==== <blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi. === August 2023 === ==== 14 August 2023 ==== <blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator] === April 2024 === ==== 15 April 2024 ==== <blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server. [[Category:Plover]] 892d4091f3d31c1cff8675b3d03fe5ab4997938f 1778 1777 2024-04-26T01:33:47Z Neu neutral 941 /* June 2010 */ link to Steno 101 series. wikitext text/x-wiki The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. === September 2005 to March 2007 (18 months) === <blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute. === 2007 === <blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. === 2008 === <blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? === October 2009 === <blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. === June 2010 === <blockquote>Education</blockquote>Mirabai begins writing her [http://plover.stenoknight.com/2010/06/steno-101-lesson-zero.html Steno 101 series.] === October 2010 === <blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. === December 2010 === <blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. === April 2011 === <blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade). === October 2011 === <blockquote>Plover</blockquote>Hesky Fisher starts working on Plover. === May 2012 === <blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. === April 2013 === <blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. === July 2013 === <blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. === August 2013 === <blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus]. === September 2013 === <blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. === January 2014 === <blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects. === April 2014 === <blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard. === Summer 2015 === <blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. === August 2015 === <blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. === September 2015 === <blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. === December 2015 === <blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches. === March 2016 === <blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. === April 2016 === <blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === October 2016 === <blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig]. === November 2016 === <blockquote>Plover</blockquote>Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === December 2016 === <blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed. '''The thumb keycap was also completed.''' === The future - 2017 and onwards === Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. === July 2017 === ==== 07 July 2017 T05:09:34Z ==== <blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information. === September 2018 === <blockquote>Textbook</blockquote>Ted Morin a self-taught hobbyist stenographer, begins work on [https://www.artofchording.com/ Art of Chording!] The entire book ''was written'' and is being written, exclusively using stenography. === January 2019 === <blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. === February 2021 === <blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. === April 2021 === <blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them. === July 2021 === <blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. === January 2022 === ==== 22<sup>nd</sup> January 2022 ==== ===== Open Steno / Plover Meetup ===== <blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. --> === June 2022 === ==== 7<sup>th</sup> June 2022 ==== <blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi. === August 2023 === ==== 14 August 2023 ==== <blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator] === April 2024 === ==== 15 April 2024 ==== <blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server. [[Category:Plover]] 8f19c18ebc3a46a627347041334b46a620994d39 1779 1778 2024-04-26T01:39:04Z Neu neutral 941 /* April 2014 */ comment out dead link... wikitext text/x-wiki The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. === September 2005 to March 2007 (18 months) === <blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute. === 2007 === <blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. === 2008 === <blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? === October 2009 === <blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. === June 2010 === <blockquote>Education</blockquote>Mirabai begins writing her [http://plover.stenoknight.com/2010/06/steno-101-lesson-zero.html Steno 101 series.] === October 2010 === <blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. === December 2010 === <blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. === April 2011 === <blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade). === October 2011 === <blockquote>Plover</blockquote>Hesky Fisher starts working on Plover. === May 2012 === <blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. === April 2013 === <blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. === July 2013 === <blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. === August 2013 === <blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus]. === September 2013 === <blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. === January 2014 === <blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects. === April 2014 === <blockquote>Hardware</blockquote>Emanuele Caruso announces the Stenoboard, an open source stenographic split 3D-printed keyboard. <!-- peace, brother [http://www.stenoboard.com/ Stenoboard] Friday, 26 April, 2024 ,--> === Summer 2015 === <blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. === August 2015 === <blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. === September 2015 === <blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. === December 2015 === <blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches. === March 2016 === <blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. === April 2016 === <blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === October 2016 === <blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig]. === November 2016 === <blockquote>Plover</blockquote>Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === December 2016 === <blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed. '''The thumb keycap was also completed.''' === The future - 2017 and onwards === Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. === July 2017 === ==== 07 July 2017 T05:09:34Z ==== <blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information. === September 2018 === <blockquote>Textbook</blockquote>Ted Morin a self-taught hobbyist stenographer, begins work on [https://www.artofchording.com/ Art of Chording!] The entire book ''was written'' and is being written, exclusively using stenography. === January 2019 === <blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. === February 2021 === <blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. === April 2021 === <blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them. === July 2021 === <blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. === January 2022 === ==== 22<sup>nd</sup> January 2022 ==== ===== Open Steno / Plover Meetup ===== <blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. --> === June 2022 === ==== 7<sup>th</sup> June 2022 ==== <blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi. === August 2023 === ==== 14 August 2023 ==== <blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator] === April 2024 === ==== 15 April 2024 ==== <blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server. [[Category:Plover]] 8b88fdf270de24702aebe44080e394c57e005360 Plugins 0 45 1854 1560 2024-04-28T04:43:40Z Neu neutral 941 /* Plugin Development */ I did what I know I could... wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to <code>Tools → Plugins Manager</code> * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins <blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working # Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) # Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app # Select "<kbd><samp>Open file location</samp></kbd>" # In the folder, hold down Shift and right click # Select "<kbd><samp>Open PowerShell window here</samp></kbd>" Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Types of Plugins == === Dictionary Plugins === Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Machine Plugins === Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards. '''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.''' === System Plugins === System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean). '''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].''' === Command Plugins === Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. '''See the plugin's own documentation for setup details.''' === Macro and Meta Plugins === Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output. '''To use macro and meta plugins, see the plugin's own documentation for setting up entries.''' === GUI Plugins === GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Extension Plugins === Extension plugins can be used to execute arbitrary code. '''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. {{Out of date-section|2024-04-28T12:42:49.972649}} == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] de597884c14768fde4fbf05aa78c41db02648b17 1855 1854 2024-04-28T04:52:15Z Neu neutral 941 /* Plugins not on PyPI */ u+fdfd, nest steps that are for 'Verify git is working', wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to <code>Tools → Plugins Manager</code> * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins <blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>. The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working #* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) #* Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app # Select "<kbd><samp>Open file location</samp></kbd>" # In the folder, hold down Shift and right click # Select "<kbd><samp>Open PowerShell window here</samp></kbd>" Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Types of Plugins == === Dictionary Plugins === Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Machine Plugins === Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards. '''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.''' === System Plugins === System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean). '''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].''' === Command Plugins === Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. '''See the plugin's own documentation for setup details.''' === Macro and Meta Plugins === Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output. '''To use macro and meta plugins, see the plugin's own documentation for setting up entries.''' === GUI Plugins === GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Extension Plugins === Extension plugins can be used to execute arbitrary code. '''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. {{Out of date-section|2024-04-28T12:42:49.972649}} == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 7aa2b875ef707767477b3a5b4f00ecd2e317f52c 1857 1855 2024-04-28T05:22:07Z Neu neutral 941 u+fdfd, 1. have a neat line around NOTE block 2. attempt to disambiguate built-in (pre-installed) and manual--install , thus requiring a manual install as a fix? hmm.. wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to <code>Tools → Plugins Manager</code> * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins <blockquote>{{Box-text-only|text='''NOTE:''' if the built-in plugins manager is not an option,[[Installation Guide| try uninstalling Plover and re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>.}}</blockquote> The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]] Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working #* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) #* Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app # Select "<kbd><samp>Open file location</samp></kbd>" # In the folder, hold down Shift and right click # Select "<kbd><samp>Open PowerShell window here</samp></kbd>" Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Types of Plugins == === Dictionary Plugins === Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Machine Plugins === Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards. '''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.''' === System Plugins === System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean). '''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].''' === Command Plugins === Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. '''See the plugin's own documentation for setup details.''' === Macro and Meta Plugins === Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output. '''To use macro and meta plugins, see the plugin's own documentation for setting up entries.''' === GUI Plugins === GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Extension Plugins === Extension plugins can be used to execute arbitrary code. '''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. {{Out of date-section|2024-04-28T12:42:49.972649}} == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 58e31427c24ebee8806a39b6ff09d57a35c7c03c 1858 1857 2024-04-28T05:35:17Z Neu neutral 941 /* How to Install Plugins */ u+fdfd, A <br clear=all> frameless are in-line, so this might be the mark up to have following paragraph below the picture! ://www..+wiki.org/wiki/Help:Images#Stopping_the_text_flow wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to <code>Tools → Plugins Manager</code> * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins <blockquote>{{Box-text-only|text='''NOTE:''' if the built-in plugins manager is not an option,[[Installation Guide| try uninstalling Plover and re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>.}}</blockquote> The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]]<br clear=all> Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki> #* Copy this to your clipboard # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git] #* You may need to restart after installing git # Verify git is working #* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS) #* Type <code>git</code> and press enter You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app # Select "<kbd><samp>Open file location</samp></kbd>" # In the folder, hold down Shift and right click # Select "<kbd><samp>Open PowerShell window here</samp></kbd>" Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Types of Plugins == === Dictionary Plugins === Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Machine Plugins === Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards. '''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.''' === System Plugins === System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean). '''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].''' === Command Plugins === Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. '''See the plugin's own documentation for setup details.''' === Macro and Meta Plugins === Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output. '''To use macro and meta plugins, see the plugin's own documentation for setting up entries.''' === GUI Plugins === GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Extension Plugins === Extension plugins can be used to execute arbitrary code. '''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. {{Out of date-section|2024-04-28T12:42:49.972649}} == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] f2aeb71fa8afd7c835db02a37d6d768de0c23f6e Learning stenography 0 17 1876 287 2024-04-29T02:52:40Z Neu neutral 941 /* Lapwing textbook */ standardize headings of section wikitext text/x-wiki == Suggested Learning Route == {{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}} {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].''' '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Available Steno Theories == A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from. {| class="wikitable" |+ Freely available steno theories |- ! !! Description !! Learning resources |- | '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks |- | '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book |- | '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube |} {{Info|text=Unfortunately, all of these theories are based on General North American English.}} <!-- this section is written like an advertisement; it may need to be rewritten altogether /hj --> We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text). That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them. == Textbooks == These sites aim to teach you a steno theory, from the layout to the terminology to the strokes. === Plover theory textbooks === * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. === Lapwing theory textbook === * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out [[Plugins]] for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allow you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY] *** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] 25a296b75426c15b2f801f9596e17a34b5af89b2 1877 1876 2024-04-29T02:57:12Z Neu neutral 941 /* Plover theory textbooks */ include community maintained link to download Learn Plover! PDF file... wikitext text/x-wiki == Suggested Learning Route == {{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}} {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].''' '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Available Steno Theories == A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from. {| class="wikitable" |+ Freely available steno theories |- ! !! Description !! Learning resources |- | '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks |- | '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book |- | '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube |} {{Info|text=Unfortunately, all of these theories are based on General North American English.}} <!-- this section is written like an advertisement; it may need to be rewritten altogether /hj --> We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text). That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them. == Textbooks == These sites aim to teach you a steno theory, from the layout to the terminology to the strokes. === Plover theory textbooks === * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, [https://plover.neocities.org/Learn%20Plover!%20-%20Zach%20Brown,%20Zach's%20Learns%20Plover!.pdf PDF]) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. === Lapwing theory textbook === * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out [[Plugins]] for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allow you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY] *** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] b5f2bd5126b3fd31f63707dddfbd322b6a09ea93 Using Anki for Learning Stenography 0 30 1878 209 2024-04-29T03:15:26Z Neu neutral 941 /* Custom Cards */ u+fdfd, system ops, when AEFR shall we have m:Template:Code ? wikitext text/x-wiki <span id="what-is-anki"></span> == What is Anki == Anki is a flashcard program that uses spaced repetition. The basic idea is that if the card is easy you will see it less often, and if the card is hard you will see it more often. Anki does not grade you automatically — you have full control. It can be useful for learning many things, and for steno people have used it for memorising briefs and theory rules. == Setting up Anki == # Download from here: https://apps.ankiweb.net/ # [[#making-your-own-deck|Make your own deck]] or use a [[#pre-made-decks|pre-made deck]] == Making your own deck == Making your own deck allows you to have greater control over the cards (e.g. what briefs) The most basic way is to use the default deck and add cards to it. &quot;Front&quot; and &quot;Back&quot; can be whatever you want, though most people put the translation on the front and the steno stroke on the back. === Custom Fields === Instead of just &quot;Front&quot; and &quot;Back&quot;, you might want more fields like &quot;Pseudo Steno&quot;, &quot;Stroke Diagram&quot;, &quot;Notes&quot; etc. # [https://docs.ankiweb.net/editing.html#adding-a-note-type Add a new note type] so that it won't interfere with anything else you might use Anki for # [https://docs.ankiweb.net/editing.html#customizing-fields Customise the fields] and add whatever you want # Add the new fields to the card template (see [[#custom-cards|custom cards]]) === Custom Cards === The default cards have the &quot;Front&quot; field, and when you answer it shows the &quot;Back&quot; field, as well as a reverse card. If you want to show more fields, you'll have to customise your card. See the [https://docs.ankiweb.net/templates/intro.html anki docs here], including the next few pages, for how to do this. Particular things that are useful for steno are: * [https://docs.ankiweb.net/templates/fields.html#text-to-speech Text to speech] <pre>{{tts en_US:Front}}</pre> Read out the text of the card, which is useful if you want to practice from dictation. You can also use the [https://ankiweb.net/shared/info/1436550454 AwesomeTTS] add-on for more voices. * [https://docs.ankiweb.net/templates/styling.html#field-styling Field Styling] in the card: <pre>&lt;span class=&quot;diagram&quot;&gt;{{Strokes}}&lt;/span&gt;</pre> in the styling: <syntaxhighlight lang="css">.diagram { font-family: "Stenodisplay Classic" }</syntaxhighlight> There are lots of ways you can style your fields, like making the notes smaller or colour coding your fields. The example here uses [https://github.com/Kaoffie/steno_font Kaoffie's Steno Font], which uses a font for the steno strokes to make it into a stroke diagram. You may want to [https://docs.ankiweb.net/templates/styling.html#installing-fonts install the font] into Anki if you can't install fonts on your computer or if you want a portable Anki deck. * [https://docs.ankiweb.net/templates/fields.html#checking-your-answer Typing input] <pre>{{type:Back}}</pre> Type out the field and when you turn the card over it will color code any differences. Some people like to check the translation field, some people like to turn off their dictionaries and check for the strokes. You might want a separate field for checking, since you may want prefix/suffix cards like &quot;{^ing}&quot; but what you type out is actually &quot;ing&quot;. Anki does not use this to pick the rating of the card. It is also possible to hide the text you are typing by adding the following to your styling. This might be useful if you want to focus on trusting your muscle memory. /* options are disc, circle, square, none */ -webkit-text-security: disc; == Pre-made Decks == * [https://github.com/rchern/steno-anki rchern/steno-anki] ** [https://www.openstenoproject.org/learn-plover/ Learn Plover!] lessons ** Top 10K Words ** Emily's [https://github.com/EPLHREU/emily-symbols Symbols] and [https://github.com/EPLHREU/emily-modifiers Modifiers] dictionaries ** Other community-contributed shared decks ** Script to generate cards from text file * [https://github.com/jladdjr/anki-decks jladdjr/anki-decks] ** Top 10,000 Project Gutenberg words ** Basic sounds * [https://ankiweb.net/shared/info/14548087 Steno order and Phonetic strokes] ** A small deck with cards on steno order and phonetic strokes * [https://github.com/percidae/Anki_Plover/releases/ percidae/Anki_Plover] ** Complete plover dictionary <span id="useful-anki-add-ons"></span> == Useful Anki Add-ons == [https://docs.ankiweb.net/addons.html Anki Add-ons] are third party extensions that add features to anki. To install them, go to Tools -&gt; Add-ons -&gt; Get Add-ons. * [https://ankiweb.net/shared/info/1765221856 Automatic Scoring] ** Automatically selects the difficulty of the card based on how long it took to answer it ** You still have to press &quot;enter&quot; to confirm, so you still have full control ** You may want to adjust the default time to something different. You can [https://docs.ankiweb.net/deck-options.html#general show the answer timer] and look at your [https://docs.ankiweb.net/stats.html#the-graphs answer button graph] to get an idea of what a reasonable time might be. ** Pairs well with [https://ankiweb.net/shared/info/1136455830 Advanced Review Bottom Bar] which makes it easier to see which button has been pre-selected. * [https://ankiweb.net/shared/info/2055492159 Anki Connect] ** Needed for some [[#useful-plover-extensions|useful plover extensions]] * [https://ankiweb.net/shared/info/754868802 Find Missing Words] ** Paste in a block of text and this will help you find words you don't have cards for * [https://ankiweb.net/shared/info/817108664 Anki Simulator] ** Simulates your reviews over time. Useful for choosing settings (e.g. number of new cards a day) that won't overwhelm you. (You can see how long you take per card that day in the Stats window or below the list of decks, and use this to see how many repetitions you want) * [https://ankiweb.net/shared/info/1686259334 Persistent Editor] (doesn't work with latest Anki version) ** Keeps the editing window open while reviewing (but hides the current card until you've answered it). Useful if you are using a pre-made deck and prefer different briefs to the ones that are there. * [https://ankiweb.net/shared/info/295889520 Mini Format Pack] ** Gives you more formatting options in the menu. Useful for making lists of alternative strokes, or other formatting * [https://ankiweb.net/shared/info/1436550454 AwesomeTTS] ** Gives you access to a range of TTS voices and human recorded voices (Forvo). * [https://github.com/antistic/anki-copy-selection-field Copy selection field] ** Lets you copy several selected entries in the Anki browse window, for example to copy into a practice tool like Steno Jig or Typey Type. <span id="useful-plover-extensions"></span> == Useful Plover Extensions == * [https://github.com/antistic/plover_cards Plover Cards] ** See previously typed words/phrases, sorted by various properties (e.g. last used, most used), choose your preferred stroke and add them into Anki. ** Command to quickly bring up the last X words you typed and their suggestions in an Anki &quot;Add Card&quot; window ** Requires [https://ankiweb.net/shared/info/2055492159 Anki Connect] * [https://github.com/fourshade/spectra_lexer Spectra Lexer] ** Analyzes strokes and generates stroke diagrams (click save). Useful for having stroke diagrams which explain the stroke. 47ad8567db041cc85bd5a5e736d440a6b70f65c5 1879 1878 2024-04-29T03:17:46Z Neu neutral 941 /* Useful Plover Extensions */ u+fdfd, re-sort to importance... wikitext text/x-wiki <span id="what-is-anki"></span> == What is Anki == Anki is a flashcard program that uses spaced repetition. The basic idea is that if the card is easy you will see it less often, and if the card is hard you will see it more often. Anki does not grade you automatically — you have full control. It can be useful for learning many things, and for steno people have used it for memorising briefs and theory rules. == Setting up Anki == # Download from here: https://apps.ankiweb.net/ # [[#making-your-own-deck|Make your own deck]] or use a [[#pre-made-decks|pre-made deck]] == Making your own deck == Making your own deck allows you to have greater control over the cards (e.g. what briefs) The most basic way is to use the default deck and add cards to it. &quot;Front&quot; and &quot;Back&quot; can be whatever you want, though most people put the translation on the front and the steno stroke on the back. === Custom Fields === Instead of just &quot;Front&quot; and &quot;Back&quot;, you might want more fields like &quot;Pseudo Steno&quot;, &quot;Stroke Diagram&quot;, &quot;Notes&quot; etc. # [https://docs.ankiweb.net/editing.html#adding-a-note-type Add a new note type] so that it won't interfere with anything else you might use Anki for # [https://docs.ankiweb.net/editing.html#customizing-fields Customise the fields] and add whatever you want # Add the new fields to the card template (see [[#custom-cards|custom cards]]) === Custom Cards === The default cards have the &quot;Front&quot; field, and when you answer it shows the &quot;Back&quot; field, as well as a reverse card. If you want to show more fields, you'll have to customise your card. See the [https://docs.ankiweb.net/templates/intro.html anki docs here], including the next few pages, for how to do this. Particular things that are useful for steno are: * [https://docs.ankiweb.net/templates/fields.html#text-to-speech Text to speech] <pre>{{tts en_US:Front}}</pre> Read out the text of the card, which is useful if you want to practice from dictation. You can also use the [https://ankiweb.net/shared/info/1436550454 AwesomeTTS] add-on for more voices. * [https://docs.ankiweb.net/templates/styling.html#field-styling Field Styling] in the card: <pre>&lt;span class=&quot;diagram&quot;&gt;{{Strokes}}&lt;/span&gt;</pre> in the styling: <syntaxhighlight lang="css">.diagram { font-family: "Stenodisplay Classic" }</syntaxhighlight> There are lots of ways you can style your fields, like making the notes smaller or colour coding your fields. The example here uses [https://github.com/Kaoffie/steno_font Kaoffie's Steno Font], which uses a font for the steno strokes to make it into a stroke diagram. You may want to [https://docs.ankiweb.net/templates/styling.html#installing-fonts install the font] into Anki if you can't install fonts on your computer or if you want a portable Anki deck. * [https://docs.ankiweb.net/templates/fields.html#checking-your-answer Typing input] <pre>{{type:Back}}</pre> Type out the field and when you turn the card over it will color code any differences. Some people like to check the translation field, some people like to turn off their dictionaries and check for the strokes. You might want a separate field for checking, since you may want prefix/suffix cards like &quot;{^ing}&quot; but what you type out is actually &quot;ing&quot;. Anki does not use this to pick the rating of the card. It is also possible to hide the text you are typing by adding the following to your styling. This might be useful if you want to focus on trusting your muscle memory. /* options are disc, circle, square, none */ -webkit-text-security: disc; == Pre-made Decks == * [https://github.com/rchern/steno-anki rchern/steno-anki] ** [https://www.openstenoproject.org/learn-plover/ Learn Plover!] lessons ** Top 10K Words ** Emily's [https://github.com/EPLHREU/emily-symbols Symbols] and [https://github.com/EPLHREU/emily-modifiers Modifiers] dictionaries ** Other community-contributed shared decks ** Script to generate cards from text file * [https://github.com/jladdjr/anki-decks jladdjr/anki-decks] ** Top 10,000 Project Gutenberg words ** Basic sounds * [https://ankiweb.net/shared/info/14548087 Steno order and Phonetic strokes] ** A small deck with cards on steno order and phonetic strokes * [https://github.com/percidae/Anki_Plover/releases/ percidae/Anki_Plover] ** Complete plover dictionary <span id="useful-anki-add-ons"></span> == Useful Anki Add-ons == [https://docs.ankiweb.net/addons.html Anki Add-ons] are third party extensions that add features to anki. To install them, go to Tools -&gt; Add-ons -&gt; Get Add-ons. * [https://ankiweb.net/shared/info/1765221856 Automatic Scoring] ** Automatically selects the difficulty of the card based on how long it took to answer it ** You still have to press &quot;enter&quot; to confirm, so you still have full control ** You may want to adjust the default time to something different. You can [https://docs.ankiweb.net/deck-options.html#general show the answer timer] and look at your [https://docs.ankiweb.net/stats.html#the-graphs answer button graph] to get an idea of what a reasonable time might be. ** Pairs well with [https://ankiweb.net/shared/info/1136455830 Advanced Review Bottom Bar] which makes it easier to see which button has been pre-selected. * [https://ankiweb.net/shared/info/2055492159 Anki Connect] ** Needed for some [[#useful-plover-extensions|useful plover extensions]] * [https://ankiweb.net/shared/info/754868802 Find Missing Words] ** Paste in a block of text and this will help you find words you don't have cards for * [https://ankiweb.net/shared/info/817108664 Anki Simulator] ** Simulates your reviews over time. Useful for choosing settings (e.g. number of new cards a day) that won't overwhelm you. (You can see how long you take per card that day in the Stats window or below the list of decks, and use this to see how many repetitions you want) * [https://ankiweb.net/shared/info/1686259334 Persistent Editor] (doesn't work with latest Anki version) ** Keeps the editing window open while reviewing (but hides the current card until you've answered it). Useful if you are using a pre-made deck and prefer different briefs to the ones that are there. * [https://ankiweb.net/shared/info/295889520 Mini Format Pack] ** Gives you more formatting options in the menu. Useful for making lists of alternative strokes, or other formatting * [https://ankiweb.net/shared/info/1436550454 AwesomeTTS] ** Gives you access to a range of TTS voices and human recorded voices (Forvo). * [https://github.com/antistic/anki-copy-selection-field Copy selection field] ** Lets you copy several selected entries in the Anki browse window, for example to copy into a practice tool like Steno Jig or Typey Type. <span id="useful-plover-extensions"></span> == Useful Plover Extensions == * [https://github.com/antistic/plover_cards Plover Cards] ** Requires [https://ankiweb.net/shared/info/2055492159 Anki Connect] ** See previously typed words/phrases, sorted by various properties (e.g. last used, most used), choose your preferred stroke and add them into Anki. ** Command to quickly bring up the last X words you typed and their suggestions in an Anki &quot;Add Card&quot; window * [https://github.com/fourshade/spectra_lexer Spectra Lexer] ** Analyzes strokes and generates stroke diagrams (click save). Useful for having stroke diagrams which explain the stroke. e94fb33eb98344e8389066c8c970f13a55366b42 1880 1879 2024-04-29T03:26:14Z Neu neutral 941 /* Making your own deck */ u+fdfd,://developer.mozilla.org/en-US/docs/Web/HTML/Element/kbd#representing_onscreen_input_options wikitext text/x-wiki <span id="what-is-anki"></span> == What is Anki == Anki is a flashcard program that uses spaced repetition. The basic idea is that if the card is easy you will see it less often, and if the card is hard you will see it more often. Anki does not grade you automatically — you have full control. It can be useful for learning many things, and for steno people have used it for memorising briefs and theory rules. == Setting up Anki == # Download from here: https://apps.ankiweb.net/ # [[#making-your-own-deck|Make your own deck]] or use a [[#pre-made-decks|pre-made deck]] == Making your own deck == Making your own deck allows you to have greater control over the cards (e.g. what briefs) The most basic way is to use the default deck and add cards to it. &quot;<kbd><samp>Front</samp></kbd>&quot; and &quot;<kbd><samp>Back</samp></kbd>&quot; can be whatever you want, though most people put the translation on the front and the steno stroke on the back. === Custom Fields === Instead of just &quot;<kbd><samp>Front</samp></kbd>&quot; and &quot;<kbd><samp>Back</samp></kbd>&quot;, you might want more fields like &quot;Pseudo Steno&quot;, &quot;Stroke Diagram&quot;, &quot;Notes&quot; etc. # [https://docs.ankiweb.net/editing.html#adding-a-note-type Add a new note type] so that it won't interfere with anything else you might use Anki for # [https://docs.ankiweb.net/editing.html#customizing-fields Customise the fields] and add whatever you want # Add the new fields to the card template (see [[#custom-cards|custom cards]]) === Custom Cards === The default cards have the &quot;<kbd><samp>Front</samp></kbd>&quot; field, and when you answer it shows the &quot;<kbd><samp>Back</samp></kbd>&quot; field, as well as a reverse card. If you want to show more fields, you'll have to customise your card. See the [https://docs.ankiweb.net/templates/intro.html anki docs here], including the next few pages, for how to do this. Particular things that are useful for steno are: * [https://docs.ankiweb.net/templates/fields.html#text-to-speech Text to speech] <pre>{{tts en_US:Front}}</pre> Read out the text of the card, which is useful if you want to practice from dictation. You can also use the [https://ankiweb.net/shared/info/1436550454 AwesomeTTS] add-on for more voices. * [https://docs.ankiweb.net/templates/styling.html#field-styling Field Styling] in the card: <pre>&lt;span class=&quot;diagram&quot;&gt;{{Strokes}}&lt;/span&gt;</pre> in the styling: <syntaxhighlight lang="css">.diagram { font-family: "Stenodisplay Classic" }</syntaxhighlight> There are lots of ways you can style your fields, like making the notes smaller or colour coding your fields. The example here uses [https://github.com/Kaoffie/steno_font Kaoffie's Steno Font], which uses a font for the steno strokes to make it into a stroke diagram. You may want to [https://docs.ankiweb.net/templates/styling.html#installing-fonts install the font] into Anki if you can't install fonts on your computer or if you want a portable Anki deck. * [https://docs.ankiweb.net/templates/fields.html#checking-your-answer Typing input] <pre>{{type:Back}}</pre> Type out the field and when you turn the card over it will color code any differences. Some people like to check the translation field, some people like to turn off their dictionaries and check for the strokes. You might want a separate field for checking, since you may want prefix/suffix cards like &quot;{^ing}&quot; but what you type out is actually &quot;ing&quot;. Anki does not use this to pick the rating of the card. It is also possible to hide the text you are typing by adding the following to your styling. This might be useful if you want to focus on trusting your muscle memory. /* options are disc, circle, square, none */ -webkit-text-security: disc; == Pre-made Decks == * [https://github.com/rchern/steno-anki rchern/steno-anki] ** [https://www.openstenoproject.org/learn-plover/ Learn Plover!] lessons ** Top 10K Words ** Emily's [https://github.com/EPLHREU/emily-symbols Symbols] and [https://github.com/EPLHREU/emily-modifiers Modifiers] dictionaries ** Other community-contributed shared decks ** Script to generate cards from text file * [https://github.com/jladdjr/anki-decks jladdjr/anki-decks] ** Top 10,000 Project Gutenberg words ** Basic sounds * [https://ankiweb.net/shared/info/14548087 Steno order and Phonetic strokes] ** A small deck with cards on steno order and phonetic strokes * [https://github.com/percidae/Anki_Plover/releases/ percidae/Anki_Plover] ** Complete plover dictionary <span id="useful-anki-add-ons"></span> == Useful Anki Add-ons == [https://docs.ankiweb.net/addons.html Anki Add-ons] are third party extensions that add features to anki. To install them, go to Tools -&gt; Add-ons -&gt; Get Add-ons. * [https://ankiweb.net/shared/info/1765221856 Automatic Scoring] ** Automatically selects the difficulty of the card based on how long it took to answer it ** You still have to press &quot;enter&quot; to confirm, so you still have full control ** You may want to adjust the default time to something different. You can [https://docs.ankiweb.net/deck-options.html#general show the answer timer] and look at your [https://docs.ankiweb.net/stats.html#the-graphs answer button graph] to get an idea of what a reasonable time might be. ** Pairs well with [https://ankiweb.net/shared/info/1136455830 Advanced Review Bottom Bar] which makes it easier to see which button has been pre-selected. * [https://ankiweb.net/shared/info/2055492159 Anki Connect] ** Needed for some [[#useful-plover-extensions|useful plover extensions]] * [https://ankiweb.net/shared/info/754868802 Find Missing Words] ** Paste in a block of text and this will help you find words you don't have cards for * [https://ankiweb.net/shared/info/817108664 Anki Simulator] ** Simulates your reviews over time. Useful for choosing settings (e.g. number of new cards a day) that won't overwhelm you. (You can see how long you take per card that day in the Stats window or below the list of decks, and use this to see how many repetitions you want) * [https://ankiweb.net/shared/info/1686259334 Persistent Editor] (doesn't work with latest Anki version) ** Keeps the editing window open while reviewing (but hides the current card until you've answered it). Useful if you are using a pre-made deck and prefer different briefs to the ones that are there. * [https://ankiweb.net/shared/info/295889520 Mini Format Pack] ** Gives you more formatting options in the menu. Useful for making lists of alternative strokes, or other formatting * [https://ankiweb.net/shared/info/1436550454 AwesomeTTS] ** Gives you access to a range of TTS voices and human recorded voices (Forvo). * [https://github.com/antistic/anki-copy-selection-field Copy selection field] ** Lets you copy several selected entries in the Anki browse window, for example to copy into a practice tool like Steno Jig or Typey Type. <span id="useful-plover-extensions"></span> == Useful Plover Extensions == * [https://github.com/antistic/plover_cards Plover Cards] ** Requires [https://ankiweb.net/shared/info/2055492159 Anki Connect] ** See previously typed words/phrases, sorted by various properties (e.g. last used, most used), choose your preferred stroke and add them into Anki. ** Command to quickly bring up the last X words you typed and their suggestions in an Anki &quot;Add Card&quot; window * [https://github.com/fourshade/spectra_lexer Spectra Lexer] ** Analyzes strokes and generates stroke diagrams (click save). Useful for having stroke diagrams which explain the stroke. ea48787c708c3c1c65c75d486fb1978d1a9dd5fe Supported hardware 0 10 1882 1620 2024-04-29T03:56:22Z Neu neutral 941 /* What’s NKRO? */ u+fdfd, emphasis on the meaning of the acronym through repeating it in the next section... wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] e6ab9a134bf707ac0fd7338c29d7ac47c605c878 1883 1882 2024-04-29T03:59:13Z Neu neutral 941 /* Known supported keyboards */ 🎉 make table sort-able! 🎉 wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <a id="notebooks-with-nkro"></a> # Laptops with NKRO If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] d6f5a55ee62fc77f1c935c865bdee22fd20fba9d 1884 1883 2024-04-29T04:21:35Z Neu neutral 941 /* NKRO keyboards with an ortholinear layout */ u+fdfd, make Laptops with NKRO heading visible again! wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] 4306e5795533fae3e39d97b725e369fd7c5078aa 1885 1884 2024-04-29T04:22:25Z Neu neutral 941 /* Laptops with NKRO */ 🎉 make table sort-able! 🎉 wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] a7b0d642493d097e3201525a9c57a7b8f06f15de 1886 1885 2024-04-29T04:45:50Z Neu neutral 941 /* Commercially Available Hobbyist Machines */ 🎉 make table sort-able! 🎉 wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span> == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] bb8c29b0fc8ccec18222b6dc688c82d3e4a4ea28 1891 1886 2024-04-29T06:45:47Z Neu neutral 941 wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] f69c2f4eebe9c843256ff2ae00165eb467f43507 1909 1891 2024-05-02T20:10:24Z Rice 1 Include directions for excluding keys by overlapping opposite of the initial direction wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W</code> to exclude <code>W</code>. This will output <code>KHR</code>, and with the addition of <code>U</code> and <code>B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] 5d7f56daf25f7bfeca1a689bf8a394739f91e11b 1910 1909 2024-05-02T20:16:46Z Rice 1 Add another opposite overlap description wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>B</code>, you get "club". Another common word would be <code>SKP-</code> -> "and". This can be written by pressing the left stick in to select <code>S-</code> and moving the stick either clockwise from <code>K-</code> to <code>P-</code> and then going back to <code>T-</code>, or alternatively moving counter-clockwise from <code>P</code> to <code>K</code> and moving back to T-. [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] 5dde83f6b89cdc897a051abbf267973f6a90ee80 1911 1910 2024-05-03T13:42:07Z Rice 1 /* Skipping Joystick Keys with the Opposite Direction Overlap Method */ wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] f876e566351d6cad1c1e89ecb4e463f05c6a8531 1912 1911 2024-05-04T22:44:56Z Rice 1 /* Skipping Joystick Keys with the Opposite Direction Overlap Method */ wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] dd0d29af20f97ad52bbf9fc351c5bc5daeab4186 1958 1912 2024-05-15T23:52:29Z .kevinlel 1636 updated keyswitches table wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |}<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] 1165e9c29bf69bf107f1a4708b14e52366ce00f0 File:Settings.svg 6 1397 1892 2024-04-29T07:03:13Z Neu neutral 941 md:Extension:MediaUploader#Installation wikitext text/x-wiki == Summary == md:Extension:MediaUploader#Installation ccc6f53e06a9dcd3687f76bb18c8cdf40ec32e9f File:State-enabled.svg 6 1398 1893 2024-04-29T07:06:47Z Neu neutral 941 md:Extension:MediaUploader#Installation? When wikitext text/x-wiki == Summary == md:Extension:MediaUploader#Installation? When 97233aa82c1436db375e42ef0018f5071c3ab8e8 File:Translation add.svg 6 1399 1894 2024-04-29T07:07:20Z Neu neutral 941 md:Extension:MediaUploader#Installation? When wikitext text/x-wiki == Summary == md:Extension:MediaUploader#Installation? When 97233aa82c1436db375e42ef0018f5071c3ab8e8 File:Tape.svg 6 1400 1895 2024-04-29T07:07:49Z Neu neutral 941 md:Extension:MediaUploader#Installation? When wikitext text/x-wiki == Summary == md:Extension:MediaUploader#Installation? When 97233aa82c1436db375e42ef0018f5071c3ab8e8 File:Dictionary error.svg 6 1401 1896 2024-04-29T07:08:50Z Neu neutral 941 md:Extension:MediaUploader#Installation? When wikitext text/x-wiki == Summary == md:Extension:MediaUploader#Installation? When 97233aa82c1436db375e42ef0018f5071c3ab8e8 File:Dictionary readonly.svg 6 1402 1897 2024-04-29T07:09:24Z Neu neutral 941 md:Extension:MediaUploader#Installation? God willing! wikitext text/x-wiki == Summary == md:Extension:MediaUploader#Installation? God willing! 6bd6250ea4166698da47e30236ef5984b01ad0ec File:Up.svg 6 1403 1898 2024-04-29T07:09:49Z Neu neutral 941 md:Extension:MediaUploader#Installation? God willing! wikitext text/x-wiki == Summary == md:Extension:MediaUploader#Installation? God willing! 6bd6250ea4166698da47e30236ef5984b01ad0ec User:Neu neutral/SEAL::Declaration of the Independence of Cyberplane 2 1420 1950 2024-05-15T08:59:49Z Neu neutral 941 Bismillahirrahmanniraheem, wikitext text/x-wiki <div class="lefthand-sidebar-main-column"> <div class="panel-pane pane-page-title"> <h1>A Declaration of the Independence of Cyberspace</h1> </div> <div class="panel-pane pane-page-content"> <div class="long-read"> <div class="onecol column content-wrapper"> </div> <div class="onecol column content-banner"> </div> <div class="onecol column content-wrapper"> <div class="column main-content"> <div class="panel-pane pane-node-content"> <article role="article" class="node node--page node--full node--page--full"> <div class="node__content"> <div class="eff-translation-links"></div><div class="field field--name-body field--type-text-with-summary field--label-hidden"><div class="field__items"><div class="field__item even"><div class="byline">by John Perry Barlow&nbsp;</div><p>Governments of the Industrial World, you weary giants of flesh and steel, I come from Cyberspace, the new home of Mind. On behalf of the future, I ask you of the past to leave us alone. You are not welcome among us. You have no sovereignty where we gather.</p><p>We have no elected government, nor are we likely to have one, so I address you with no greater authority than that with which liberty itself always speaks. I declare the global social space we are building to be naturally independent of the tyrannies you seek to impose on us. You have no moral right to rule us nor do you possess any methods of enforcement we have true reason to fear.</p><p>Governments derive their just powers from the consent of the governed. You have neither solicited nor received ours. We did not invite you. You do not know us, nor do you know our world. Cyberspace does not lie within your borders. Do not think that you can build it, as though it were a public construction project. You cannot. It is an act of nature and it grows itself through our collective actions.</p><p>You have not engaged in our great and gathering conversation, nor did you create the wealth of our marketplaces. You do not know our culture, our ethics, or the unwritten codes that already provide our society more order than could be obtained by any of your impositions.</p><p>You claim there are problems among us that you need to solve. You use this claim as an excuse to invade our precincts. Many of these problems don't exist. Where there are real conflicts, where there are wrongs, we will identify them and address them by our means. We are forming our own Social Contract. This governance will arise according to the conditions of our world, not yours. Our world is different.</p><p>Cyberspace consists of transactions, relationships, and thought itself, arrayed like a standing wave in the web of our communications. Ours is a world that is both everywhere and nowhere, but it is not where bodies live.</p><p>We are creating a world that all may enter without privilege or prejudice accorded by race, economic power, military force, or station of birth.</p><p>We are creating a world where anyone, anywhere may express his or her beliefs, no matter how singular, without fear of being coerced into silence or conformity.</p><p>Your legal concepts of property, expression, identity, movement, and context do not apply to us. They are all based on matter, and there is no matter here.</p><p>Our identities have no bodies, so, unlike you, we cannot obtain order by physical coercion. We believe that from ethics, enlightened self-interest, and the commonweal, our governance will emerge. Our identities may be distributed across many of your jurisdictions. The only law that all our constituent cultures would generally recognize is the Golden Rule. We hope we will be able to build our particular solutions on that basis. But we cannot accept the solutions you are attempting to impose.</p><p>In the United States, you have today created a law, the Telecommunications Reform Act, which repudiates your own Constitution and insults the dreams of Jefferson, Washington, Mill, Madison, DeToqueville, and Brandeis. These dreams must now be born anew in us.</p><p>You are terrified of your own children, since they are natives in a world where you will always be immigrants. Because you fear them, you entrust your bureaucracies with the parental responsibilities you are too cowardly to confront yourselves. In our world, all the sentiments and expressions of humanity, from the debasing to the angelic, are parts of a seamless whole, the global conversation of bits. We cannot separate the air that chokes from the air upon which wings beat.</p><p>In China, Germany, France, Russia, Singapore, Italy and the United States, you are trying to ward off the virus of liberty by erecting guard posts at the frontiers of Cyberspace. These may keep out the contagion for a small time, but they will not work in a world that will soon be blanketed in bit-bearing media.</p><p>Your increasingly obsolete information industries would perpetuate themselves by proposing laws, in America and elsewhere, that claim to own speech itself throughout the world. These laws would declare ideas to be another industrial product, no more noble than pig iron. In our world, whatever the human mind may create can be reproduced and distributed infinitely at no cost. The global conveyance of thought no longer requires your factories to accomplish.</p><p>These increasingly hostile and colonial measures place us in the same position as those previous lovers of freedom and self-determination who had to reject the authorities of distant, uninformed powers. We must declare our virtual selves immune to your sovereignty, even as we continue to consent to your rule over our bodies. We will spread ourselves across the Planet so that no one can arrest our thoughts.</p><p>We will create a civilization of the Mind in Cyberspace. May it be more humane and fair than the world your governments have made before.</p><p>Davos, Switzerland<br>February 8, 1996</p> </div></div></div> </div> </article> </div> </div> <div class="column side-content"> </div> </div> <div class="onecol column content-footer"> </div> </div> </div> </div> 5c44ac3c3db78a38e58e630c2c71e7de7ed7e398 1951 1950 2024-05-15T09:00:19Z Neu neutral 941 Neu neutral moved page [[User:Neu neutral/DRAFTS::Declaration of the Independence of Cyberplane]] to [[User:Neu neutral/SEAL::Declaration of the Independence of Cyberplane]]: Misspelled title wikitext text/x-wiki <div class="lefthand-sidebar-main-column"> <div class="panel-pane pane-page-title"> <h1>A Declaration of the Independence of Cyberspace</h1> </div> <div class="panel-pane pane-page-content"> <div class="long-read"> <div class="onecol column content-wrapper"> </div> <div class="onecol column content-banner"> </div> <div class="onecol column content-wrapper"> <div class="column main-content"> <div class="panel-pane pane-node-content"> <article role="article" class="node node--page node--full node--page--full"> <div class="node__content"> <div class="eff-translation-links"></div><div class="field field--name-body field--type-text-with-summary field--label-hidden"><div class="field__items"><div class="field__item even"><div class="byline">by John Perry Barlow&nbsp;</div><p>Governments of the Industrial World, you weary giants of flesh and steel, I come from Cyberspace, the new home of Mind. On behalf of the future, I ask you of the past to leave us alone. You are not welcome among us. You have no sovereignty where we gather.</p><p>We have no elected government, nor are we likely to have one, so I address you with no greater authority than that with which liberty itself always speaks. I declare the global social space we are building to be naturally independent of the tyrannies you seek to impose on us. You have no moral right to rule us nor do you possess any methods of enforcement we have true reason to fear.</p><p>Governments derive their just powers from the consent of the governed. You have neither solicited nor received ours. We did not invite you. You do not know us, nor do you know our world. Cyberspace does not lie within your borders. Do not think that you can build it, as though it were a public construction project. You cannot. It is an act of nature and it grows itself through our collective actions.</p><p>You have not engaged in our great and gathering conversation, nor did you create the wealth of our marketplaces. You do not know our culture, our ethics, or the unwritten codes that already provide our society more order than could be obtained by any of your impositions.</p><p>You claim there are problems among us that you need to solve. You use this claim as an excuse to invade our precincts. Many of these problems don't exist. Where there are real conflicts, where there are wrongs, we will identify them and address them by our means. We are forming our own Social Contract. This governance will arise according to the conditions of our world, not yours. Our world is different.</p><p>Cyberspace consists of transactions, relationships, and thought itself, arrayed like a standing wave in the web of our communications. Ours is a world that is both everywhere and nowhere, but it is not where bodies live.</p><p>We are creating a world that all may enter without privilege or prejudice accorded by race, economic power, military force, or station of birth.</p><p>We are creating a world where anyone, anywhere may express his or her beliefs, no matter how singular, without fear of being coerced into silence or conformity.</p><p>Your legal concepts of property, expression, identity, movement, and context do not apply to us. They are all based on matter, and there is no matter here.</p><p>Our identities have no bodies, so, unlike you, we cannot obtain order by physical coercion. We believe that from ethics, enlightened self-interest, and the commonweal, our governance will emerge. Our identities may be distributed across many of your jurisdictions. The only law that all our constituent cultures would generally recognize is the Golden Rule. We hope we will be able to build our particular solutions on that basis. But we cannot accept the solutions you are attempting to impose.</p><p>In the United States, you have today created a law, the Telecommunications Reform Act, which repudiates your own Constitution and insults the dreams of Jefferson, Washington, Mill, Madison, DeToqueville, and Brandeis. These dreams must now be born anew in us.</p><p>You are terrified of your own children, since they are natives in a world where you will always be immigrants. Because you fear them, you entrust your bureaucracies with the parental responsibilities you are too cowardly to confront yourselves. In our world, all the sentiments and expressions of humanity, from the debasing to the angelic, are parts of a seamless whole, the global conversation of bits. We cannot separate the air that chokes from the air upon which wings beat.</p><p>In China, Germany, France, Russia, Singapore, Italy and the United States, you are trying to ward off the virus of liberty by erecting guard posts at the frontiers of Cyberspace. These may keep out the contagion for a small time, but they will not work in a world that will soon be blanketed in bit-bearing media.</p><p>Your increasingly obsolete information industries would perpetuate themselves by proposing laws, in America and elsewhere, that claim to own speech itself throughout the world. These laws would declare ideas to be another industrial product, no more noble than pig iron. In our world, whatever the human mind may create can be reproduced and distributed infinitely at no cost. The global conveyance of thought no longer requires your factories to accomplish.</p><p>These increasingly hostile and colonial measures place us in the same position as those previous lovers of freedom and self-determination who had to reject the authorities of distant, uninformed powers. We must declare our virtual selves immune to your sovereignty, even as we continue to consent to your rule over our bodies. We will spread ourselves across the Planet so that no one can arrest our thoughts.</p><p>We will create a civilization of the Mind in Cyberspace. May it be more humane and fair than the world your governments have made before.</p><p>Davos, Switzerland<br>February 8, 1996</p> </div></div></div> </div> </article> </div> </div> <div class="column side-content"> </div> </div> <div class="onecol column content-footer"> </div> </div> </div> </div> 5c44ac3c3db78a38e58e630c2c71e7de7ed7e398 Built-in tools 0 12 1978 1646 2024-05-20T08:55:23Z Neu neutral 941 /* Dictionaries field */ u+fdfd, sorted list, placed in icons at suitable locations... Alhamdulillah... wikitext text/x-wiki Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window. == Configure Plover == The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things. == Paper tape == Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "<kbd><samp>show paper tape</samp></kbd>" checkbox in the interface tab. == Stroke suggestions == When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "<kbd><samp>show suggestions</samp></kbd>" checkbox in the interface tab of the configuration window. == Lookup tool == A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]]. == Plugins manager == The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover. Some plugins are themselves tools. == Main window == The main window can be used to reconnect the machine, enable and disable output and manage dictionaries. === Dictionaries field === This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. <br />For each dictionary, the following information is shown: * The name of the dictionary. * A checkbox to enable and disable the dictionary. * If there's a star there, it's the one that new entries will go into by default. * A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, you are able to do so in two ways as follows: # select the dictionary , drag and drop to preferred location of priority # select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list. * If the dictionary can be read but not written by Plover, it'll show with a [[File:Dictionary readonly.svg|link=|32px]]padlock next to the number. Below the list of dictionaries, there are buttons to do the following actions: * Undo the last dictionary adding, deleting or reordering operation. * Use the [[Built-in Tools#Dictionary editor|dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in. * Remove a dictionary from the list. * Add a dictionary to the list. * [[Built-in Tools#Add translation dialog|Add an entry]] to the selected dictionary. * [[File:Up.svg|link=|32px]]Move the selected dictionaries up on the list. * Move the selected dictionaries down on the list. == Dictionary editor == The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries. At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "<kbd><samp>filter by strokes</samp></kbd>" field. And to get entries that map to translations containing specific words, use the "<kbd><samp>filter by translation</samp></kbd>" field. The strokes and translations on the list are editable. Listed below are three buttons that can be found at the bottom left-hand side: # [[File:Undo.svg|link=|32px]] '''Undo''' last action. # [[File:Remove.svg|link=|32px]] '''Remove''' selected entry/entries. # [[File:Add.svg|link=|32px]] '''Add''' a new entry. == Add translation dialog == A dialog to add an entry to a dictionary. It has three fields: * Which dictionary to add an entry to. * The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries. * What they should translate to. Below this field you should see any strokes already mapped to the translation. * A cancel button that closes the dialog. * An okay button that adds the entry and closes the dialog. [[Category:Plover]] 57c3f95472cba689d686ab0c837e71d97c17f4e7 Troubleshooting issues 0 14 1984 1692 2024-05-21T14:46:46Z MegaMichelle 1638 Explain how to fix missing or jumbled output on linux. wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate| arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span> === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == If you’re running Plover 4.x and are missing the plugins manager or it’s not working as expected, you can try [[Plugins#manually-installing-plugins |manually installing plugins]]<span id="dictionary-issues"></span> == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == <span id="plover-does-not-run"></span> === Plover does not run === <ul> <li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p> <ul> <li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code> </li> <li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security &amp; Privacy &gt; Privacy &gt; Accessibility.</p> <p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li> <li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p> <p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p> <p>There are several ways you can try to fix them, from least destructive to most destructive:</p> <ol style="list-style-type: decimal;"> <li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li> <li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications &gt; Utilities &gt; Terminal.app), copy/paste the following command and press Enter:</p> <pre>sudo tccutil reset Accessibility</pre> <p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li> <li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p> <pre>sudo tccutil reset All</pre></li> <li><p>Alternatively, as a debugging step, [[Invoke_Plover_from_the_Command_Line| invoke Plover in the terminal]] with the command</p> <pre>/Applications/Plover.app/Contents/MacOS/Plover</pre> <p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol> </li> <li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul> </li></ul><span id="unrecognized-keystrokes"></span> === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == <span id="missing-or-jumbled-output"></span> === Missing or jumbled output === * IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>).<span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span> The solution is to go open Plover's configuration dialog, navigate to the "Output" tab, and increase the "Key press delay". === Linux dynamic keyboard layout switching is not working === * Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].<span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span> === Delayed/slow output when using gnome-shell and the keyboard machine === * It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. 84d51be3777a44d6ad55deebddbc2810d30c31d0 Glossary 0 16 2107 139 2024-06-14T02:52:35Z Neu neutral 941 an chore link fix 🔨 Alhamdulillah... wikitext text/x-wiki This glossary will help you with terms that you may come across in the steno community. === Arpeggiate === A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. === Brief === Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>FRIMT</code> (reads: "frimt" and takes only one stroke) === Chord === A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Conflict === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Dragging === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Mandatory === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline. === Misstroke === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Philly Shift === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Shadowing === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Stacking === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Steno Dictionary === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Order === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Stroke === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the outline <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. === Steno Theory === A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally. === Suffix folding or tucking === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Untranslate === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Word Boundary === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Write Out === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". === Writing === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] 7367a3d7f55b09b1d7c77093b8cf0ddcf1cc93ac 2108 2107 2024-06-14T02:55:24Z Neu neutral 941 /* Stroke */ u+fdfd,add same page anchor link-ing 🌱 Glossary#Outline wikitext text/x-wiki This glossary will help you with terms that you may come across in the steno community. === Arpeggiate === A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. === Brief === Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>FRIMT</code> (reads: "frimt" and takes only one stroke) === Chord === A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Conflict === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Dragging === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Mandatory === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline. === Misstroke === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Philly Shift === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Shadowing === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Stacking === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Steno Dictionary === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Order === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Stroke === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. === Steno Theory === A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally. === Suffix folding or tucking === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Untranslate === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Word Boundary === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Write Out === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". === Writing === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] 030852923fa71b2e33bb1631e66534a5a85684e0 Troubleshooting issues 0 14 2124 1984 2024-06-15T16:04:41Z Aerick 9 /* Plugins Manager */ wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate| arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span> === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == ===Disappearing plugins manager=== When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing. # In the toolbar, select <code>File → Open Config Folder</code> # Delete the <code>Plugins</code> folder # Uninstall and reinstall Plover ===Plugins not showing in the plugins manager=== Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]]. == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == <span id="plover-does-not-run"></span> === Plover does not run === <ul> <li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p> <ul> <li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code> </li> <li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security &amp; Privacy &gt; Privacy &gt; Accessibility.</p> <p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li> <li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p> <p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p> <p>There are several ways you can try to fix them, from least destructive to most destructive:</p> <ol style="list-style-type: decimal;"> <li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li> <li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications &gt; Utilities &gt; Terminal.app), copy/paste the following command and press Enter:</p> <pre>sudo tccutil reset Accessibility</pre> <p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li> <li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p> <pre>sudo tccutil reset All</pre></li> <li><p>Alternatively, as a debugging step, [[Invoke_Plover_from_the_Command_Line| invoke Plover in the terminal]] with the command</p> <pre>/Applications/Plover.app/Contents/MacOS/Plover</pre> <p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol> </li> <li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul> </li></ul><span id="unrecognized-keystrokes"></span> === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == <span id="missing-or-jumbled-output"></span> === Missing or jumbled output === * IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>).<span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span> The solution is to go open Plover's configuration dialog, navigate to the "Output" tab, and increase the "Key press delay". === Linux dynamic keyboard layout switching is not working === * Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].<span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span> === Delayed/slow output when using gnome-shell and the keyboard machine === * It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. 4f30de7de86f82eeed79aa8c64ea4ddf7c33f84d 2126 2124 2024-06-15T16:08:44Z Aerick 9 /* Missing or jumbled output */ wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate| arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span> === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == ===Disappearing plugins manager=== When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing. # In the toolbar, select <code>File → Open Config Folder</code> # Delete the <code>Plugins</code> folder # Uninstall and reinstall Plover ===Plugins not showing in the plugins manager=== Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]]. == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == <span id="plover-does-not-run"></span> === Plover does not run === <ul> <li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p> <ul> <li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code> </li> <li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security &amp; Privacy &gt; Privacy &gt; Accessibility.</p> <p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li> <li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p> <p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p> <p>There are several ways you can try to fix them, from least destructive to most destructive:</p> <ol style="list-style-type: decimal;"> <li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li> <li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications &gt; Utilities &gt; Terminal.app), copy/paste the following command and press Enter:</p> <pre>sudo tccutil reset Accessibility</pre> <p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li> <li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p> <pre>sudo tccutil reset All</pre></li> <li><p>Alternatively, as a debugging step, [[Invoke_Plover_from_the_Command_Line| invoke Plover in the terminal]] with the command</p> <pre>/Applications/Plover.app/Contents/MacOS/Plover</pre> <p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol> </li> <li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul> </li></ul><span id="unrecognized-keystrokes"></span> === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == <span id="missing-or-jumbled-output"></span> === Missing or jumbled output === IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>. [[File:Key press delay.png|alt=key press delay field in plover's configuration|none|thumb|Increase the key press delay to fix transposed or transposed letters.]] === Linux dynamic keyboard layout switching is not working === Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298]. === Delayed/slow output when using gnome-shell and the keyboard machine === It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. d7f57f25e9670acef79a23133644174fe0266def 2127 2126 2024-06-15T16:13:44Z Aerick 9 /* Missing or jumbled output */ wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate| arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span> === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == ===Disappearing plugins manager=== When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing. # In the toolbar, select <code>File → Open Config Folder</code> # Delete the <code>Plugins</code> folder # Uninstall and reinstall Plover ===Plugins not showing in the plugins manager=== Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]]. == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == <span id="plover-does-not-run"></span> === Plover does not run === <ul> <li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p> <ul> <li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code> </li> <li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security &amp; Privacy &gt; Privacy &gt; Accessibility.</p> <p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li> <li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p> <p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p> <p>There are several ways you can try to fix them, from least destructive to most destructive:</p> <ol style="list-style-type: decimal;"> <li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li> <li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications &gt; Utilities &gt; Terminal.app), copy/paste the following command and press Enter:</p> <pre>sudo tccutil reset Accessibility</pre> <p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li> <li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p> <pre>sudo tccutil reset All</pre></li> <li><p>Alternatively, as a debugging step, [[Invoke_Plover_from_the_Command_Line| invoke Plover in the terminal]] with the command</p> <pre>/Applications/Plover.app/Contents/MacOS/Plover</pre> <p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol> </li> <li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul> </li></ul><span id="unrecognized-keystrokes"></span> === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == === Missing or jumbled output === IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>. [[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix transposed or transposed letters.|center]] === Linux dynamic keyboard layout switching is not working === Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298]. === Delayed/slow output when using gnome-shell and the keyboard machine === It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. === Plover not working on Wayland === This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success. The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager. a01cd66a3ab8982586d09210aaa557d40c805df1 2129 2127 2024-06-15T16:29:51Z Aerick 9 permissions fix was way too verbose wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate| arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span> === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == ===Disappearing plugins manager=== When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing. # In the toolbar, select <code>File → Open Config Folder</code> # Delete the <code>Plugins</code> folder # Uninstall and reinstall Plover ===Plugins not showing in the plugins manager=== Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]]. == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == <span id="plover-does-not-run"></span> === No output despite keys showing up in the paper tape === # Enable Plover's output. # Open the paper tape and press some keys. #* If nothing shows up, you will need to set up your machine correctly first. #* If you see keys, follow the rest of these instructions. # Open <code>System Settings &#x3E; Privacy & Security &#x3E; Accessibility</code>. #* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!''' # Add the <code>Plover</code> app with the <code>+</code> button. === Incompatibility with Karabiner Elements === Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover. === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == === Missing or jumbled output === IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>. [[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix transposed or transposed letters.|center]] === Linux dynamic keyboard layout switching is not working === Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298]. === Delayed/slow output when using gnome-shell and the keyboard machine === It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. === Plover not working on Wayland === This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success. The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager. 695f13503cafbb4aee99ebae93985730b3f3342c 2137 2129 2024-06-15T17:24:58Z Aerick 9 /* No output despite keys showing up in the paper tape */ wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate. === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == ===Disappearing plugins manager=== When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing. # In the toolbar, select <code>File → Open Config Folder</code> # Delete the <code>Plugins</code> folder # Uninstall and reinstall Plover ===Plugins not showing in the plugins manager=== Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]]. == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == === No output despite keys showing up in the paper tape === # Enable Plover's output. # Open the paper tape and press some keys. #* If nothing shows up, you will first need to [[Supported Hardware#Setting Up a Hobbyist Machine With Plover|set up your machine]]. #* If you see letters showing in the paper tape, follow the rest of these instructions. # Open <code>System Settings &#x3E; Privacy & Security &#x3E; Accessibility</code>. #* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!''' # Add the <code>Plover</code> app with the <code>+</code> button. === Incompatibility with Karabiner Elements === Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover. === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == === Missing or jumbled output === IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>. [[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix transposed or transposed letters.|center]] === Linux dynamic keyboard layout switching is not working === Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298]. === Delayed/slow output when using gnome-shell and the keyboard machine === It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. === Plover not working on Wayland === This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success. The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager. 56a28f0756d03fac336a15c1aee1530839ba62fd 2142 2137 2024-06-16T01:07:47Z Aerick 9 /* Missing or jumbled output */ wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate. === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == ===Disappearing plugins manager=== When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing. # In the toolbar, select <code>File → Open Config Folder</code> # Delete the <code>Plugins</code> folder # Uninstall and reinstall Plover ===Plugins not showing in the plugins manager=== Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]]. == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == === No output despite keys showing up in the paper tape === # Enable Plover's output. # Open the paper tape and press some keys. #* If nothing shows up, you will first need to [[Supported Hardware#Setting Up a Hobbyist Machine With Plover|set up your machine]]. #* If you see letters showing in the paper tape, follow the rest of these instructions. # Open <code>System Settings &#x3E; Privacy & Security &#x3E; Accessibility</code>. #* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!''' # Add the <code>Plover</code> app with the <code>+</code> button. === Incompatibility with Karabiner Elements === Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover. === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == === Missing or jumbled output === IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>. [[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]] === Linux dynamic keyboard layout switching is not working === Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298]. === Delayed/slow output when using gnome-shell and the keyboard machine === It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. === Plover not working on Wayland === This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success. The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager. 3cec0276dcf6af30baa9db3bd11ea70ebeacf1fe 2143 2142 2024-06-16T01:08:52Z Aerick 9 /* Plover not working on Wayland */ wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate. === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == ===Disappearing plugins manager=== When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing. # In the toolbar, select <code>File → Open Config Folder</code> # Delete the <code>Plugins</code> folder # Uninstall and reinstall Plover ===Plugins not showing in the plugins manager=== Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]]. == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == === No output despite keys showing up in the paper tape === # Enable Plover's output. # Open the paper tape and press some keys. #* If nothing shows up, you will first need to [[Supported Hardware#Setting Up a Hobbyist Machine With Plover|set up your machine]]. #* If you see letters showing in the paper tape, follow the rest of these instructions. # Open <code>System Settings &#x3E; Privacy & Security &#x3E; Accessibility</code>. #* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!''' # Add the <code>Plover</code> app with the <code>+</code> button. === Incompatibility with Karabiner Elements === Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover. === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == === Missing or jumbled output === IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>. [[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]] === Linux dynamic keyboard layout switching is not working === Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298]. === Delayed/slow output when using gnome-shell and the keyboard machine === It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. === Plover not working on Wayland === Plover does not officially support Wayland. This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success. The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager. 4d5bdc2f027649b6bd2bcd162dae0dc1433c11c8 File:Key press delay.png 6 1479 2125 2024-06-15T16:07:52Z Aerick 9 wikitext text/x-wiki key press delay in the configuration 47d8318fb3a2e09902bd7adcd5e304abd7082641 Installation Guide 0 8 2128 1693 2024-06-15T16:19:01Z Aerick 9 /* Download Plover for Mac here */ wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} <!--T:7--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. <!--T:12--> {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. This includes systems like Ubuntu and Fedora. Either [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS switch to X11] or use the [https://github.com/LilleAila/plover-uinput plover-uinput] plugin. See the page on [https://plover.wiki/index.php/Plugins#Manually_Installing_Plugins manually installing] this plugin.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == <!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === <!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == <!--T:27--> <!--T:28--> Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> 8d17bb0cb0c22b54b2ff1d884054f6dcbd187b9a 2150 2128 2024-06-17T03:59:22Z Aerick 9 /* Download Plover for Mac here */ wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. #* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info). # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. <!--T:12--> {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. This includes systems like Ubuntu and Fedora. Either [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS switch to X11] or use the [https://github.com/LilleAila/plover-uinput plover-uinput] plugin. See the page on [https://plover.wiki/index.php/Plugins#Manually_Installing_Plugins manually installing] this plugin.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == <!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === <!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == <!--T:27--> <!--T:28--> Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> edbb3d278a43df2fed1f83a9c55b423abbd003f7 2171 2150 2024-06-19T02:47:26Z Aerick 9 /* Install Plover on Windows (typo)*/ wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. #* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info). # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. <!--T:12--> {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. This includes systems like Ubuntu and Fedora. Either [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS switch to X11] or use the [https://github.com/LilleAila/plover-uinput plover-uinput] plugin. See the page on [https://plover.wiki/index.php/Plugins#Manually_Installing_Plugins manually installing] this plugin.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == <!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === <!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == <!--T:27--> <!--T:28--> Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> bff135a4647b91f9446606241fa46f47f3e1c7ab 2172 2171 2024-06-19T02:49:34Z Aerick 9 /* Allow Access to Serial Ports */ wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. #* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info). # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. <!--T:12--> {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. This includes systems like Ubuntu and Fedora. Either [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS switch to X11] or use the [https://github.com/LilleAila/plover-uinput plover-uinput] plugin. See the page on [https://plover.wiki/index.php/Plugins#Manually_Installing_Plugins manually installing] this plugin.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == <!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).''' === Error relating to xcb === <!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == <!--T:27--> <!--T:28--> Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> 26404ab5e886307c48037f4244b7ddd8ca19076d File:Machine tab with Gemini PR and Refresh highlighted.png 6 1480 2130 2024-06-15T16:59:07Z Aerick 9 wikitext text/x-wiki Machine tab with Gemini PR and Refresh highlighted a6d062adafcad01532bd26cdaccca7a47789277d File:Machine tab with drop down items highlighted.png 6 1481 2131 2024-06-15T17:02:41Z Aerick 9 wikitext text/x-wiki machine tab with drop down items highlighted 24c3f21edb04d9b80d712abd3d9c31272fd47145 File:Machine tab with drop down menu and COM3 highlighted.png 6 1482 2132 2024-06-15T17:06:50Z Aerick 9 wikitext text/x-wiki machine tab with drop down menu and COM3 highlighted a21dbb7ef8680896d89407d8cba3441d9266977f File:Machine tab Gemini PR, refresh, and drop down options highlighted.png 6 1483 2133 2024-06-15T17:11:57Z Aerick 9 wikitext text/x-wiki machine tab Gemini PR, refresh, and drop down options highlighted c07f926c3914ccae2e9c2035d6a0a5f16ee5072b File:Plover main window with reconnect machine button highlighted.png 6 1484 2134 2024-06-15T17:18:01Z Aerick 9 wikitext text/x-wiki Plover main window with reconnect machine button highlighted e0a25aaf3593fdae578abbd75549ac120795df19 Supported hardware 0 10 2135 1958 2024-06-15T17:19:30Z Aerick 9 Add instructions for setting up hobbyist machine. wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} == Setting Up a Hobbyist Machine == Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in for use with Plover without having to enable or disable the output. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below. === Main method === This method involves determining the serial port for Plover to listen to. # Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button. #* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]] # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Open the <code>Port</code> drop down menu. #* If you see your device name show up, select it. #* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]] # Press <code>OK</code> and <code>Apply</code> # Test that your machine is working #* Open the paper tape (<code>Tools → Paper tape</code>) #* Press some keys on your machine #* Verify that they show up in the paper tape === Trial and error method === Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try. # In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Select the first option in the <code>Port</code> drop down menu. # Press <code>OK</code> and <code>Apply</code>. # Open the paper tape and press some keys on your machine. #* If you see output in the paper tape, you are done. #* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu. === Serial protocol limitations === If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button. [[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]] If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] f30f97bd2701c172f9d489af4850c935d70ec8f3 2136 2135 2024-06-15T17:22:51Z Aerick 9 Add video for setting up machine with plover wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} == Setting Up a Hobbyist Machine With Plover == Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in for use with Plover without having to enable or disable the output. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below or the video tutorial. <youtube>2tp_hSVCKN8</youtube> === Main method === This method involves determining the serial port for Plover to listen to. # Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button. #* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]] # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Open the <code>Port</code> drop down menu. #* If you see your device name show up, select it. #* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]] # Press <code>OK</code> and <code>Apply</code> # Test that your machine is working #* Open the paper tape (<code>Tools → Paper tape</code>) #* Press some keys on your machine #* Verify that they show up in the paper tape === Trial and error method === Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try. # In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Select the first option in the <code>Port</code> drop down menu. # Press <code>OK</code> and <code>Apply</code>. # Open the paper tape and press some keys on your machine. #* If you see output in the paper tape, you are done. #* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu. === Serial protocol limitations === If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button. [[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]] If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.<span id="out-of-production-machines"></span> == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] 705119574c1a2628d90c521c891058dd5a6cf92b 2138 2136 2024-06-15T17:40:37Z Aerick 9 /* Setting Up a Hobbyist Machine With Plover */ wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} == Setting Up a Hobbyist Machine With Plover == Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in for use with Plover without having to enable or disable the output. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below or the video tutorial. <youtube>2tp_hSVCKN8</youtube> === Main method === This method involves determining the serial port for Plover to listen to. # Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button. #* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]] # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Open the <code>Port</code> drop down menu. #* If you see your device name show up, select it. #* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]] # Press <code>Apply</code> and <code>OK</code> # Test that your machine is working #* Open the paper tape (<code>Tools → Paper tape</code>) #* Press some keys on your machine #* Verify that they show up in the paper tape === Trial and error method === Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try. # In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Select the first option in the <code>Port</code> drop down menu. # Press <code>Apply</code> and <code>OK</code> # Open the paper tape and press some keys on your machine. #* If you see output in the paper tape, you are done. #* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu. === Serial protocol limitations === If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button. [[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]] If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again. ==== Autoreconnect ==== On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] 9707961aa610da93355b535244bc1aade02c5c25 2169 2138 2024-06-19T02:43:13Z Aerick 9 Update stock status wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of June 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of June 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of June 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of June 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of June 2024): In stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} == Setting Up a Hobbyist Machine With Plover == Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in for use with Plover without having to enable or disable the output. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below or the video tutorial. <youtube>2tp_hSVCKN8</youtube> === Main method === This method involves determining the serial port for Plover to listen to. # Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button. #* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]] # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Open the <code>Port</code> drop down menu. #* If you see your device name show up, select it. #* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]] # Press <code>Apply</code> and <code>OK</code> # Test that your machine is working #* Open the paper tape (<code>Tools → Paper tape</code>) #* Press some keys on your machine #* Verify that they show up in the paper tape === Trial and error method === Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try. # In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Select the first option in the <code>Port</code> drop down menu. # Press <code>Apply</code> and <code>OK</code> # Open the paper tape and press some keys on your machine. #* If you see output in the paper tape, you are done. #* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu. === Serial protocol limitations === If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button. [[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]] If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again. ==== Autoreconnect ==== On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] 5fe9e1f7c89672c16111d3fad9ddc60dfb5aa66f 2170 2169 2024-06-19T02:44:41Z Aerick 9 /* Setting Up a Hobbyist Machine With Plover (conciseness) */ wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of June 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of June 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of June 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of June 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of June 2024): In stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} == Setting Up a Hobbyist Machine With Plover == Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below or the video tutorial. <youtube>2tp_hSVCKN8</youtube> === Main method === This method involves determining the serial port for Plover to listen to. # Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button. #* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]] # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Open the <code>Port</code> drop down menu. #* If you see your device name show up, select it. #* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]] # Press <code>Apply</code> and <code>OK</code> # Test that your machine is working #* Open the paper tape (<code>Tools → Paper tape</code>) #* Press some keys on your machine #* Verify that they show up in the paper tape === Trial and error method === Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try. # In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Select the first option in the <code>Port</code> drop down menu. # Press <code>Apply</code> and <code>OK</code> # Open the paper tape and press some keys on your machine. #* If you see output in the paper tape, you are done. #* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu. === Serial protocol limitations === If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button. [[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]] If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again. ==== Autoreconnect ==== On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] baed53d0b6ea43ceb9f04fd87110c9cc3ff36b27 2176 2170 2024-06-23T15:03:27Z Aerick 9 /* Autoreconnect */ wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of June 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of June 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of June 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of June 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of June 2024): In stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} == Setting Up a Hobbyist Machine With Plover == Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below or the video tutorial. <youtube>2tp_hSVCKN8</youtube> === Main method === This method involves determining the serial port for Plover to listen to. # Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button. #* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]] # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Open the <code>Port</code> drop down menu. #* If you see your device name show up, select it. #* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]] # Press <code>Apply</code> and <code>OK</code> # Test that your machine is working #* Open the paper tape (<code>Tools → Paper tape</code>) #* Press some keys on your machine #* Verify that they show up in the paper tape === Trial and error method === Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try. # In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Select the first option in the <code>Port</code> drop down menu. # Press <code>Apply</code> and <code>OK</code> # Open the paper tape and press some keys on your machine. #* If you see output in the paper tape, you are done. #* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu. === Serial protocol limitations === If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button. [[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]] If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again. ==== Autoreconnect ==== On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. For more details, see the [[Autoreconnect]] page. == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] 082990517dc80339860247b8fec00be7cd26fbba Plugins 0 45 2139 1858 2024-06-15T17:43:15Z Aerick 9 /* Windows */ wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to <code>Tools → Plugins Manager</code> * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart plover after installing/updating/removing plugins <blockquote>{{Box-text-only|text='''NOTE:''' if the built-in plugins manager is not an option,[[Installation Guide| try uninstalling Plover and re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>.}}</blockquote> The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]]<br clear=all> Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository. #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>. #* Copy this to your clipboard. # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]. #* You may need to restart after installing git. # Verify git is working. #* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS). #* Type <code>git</code> and press enter. You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app. # Select <kbd><samp><code>Open file location</code></samp></kbd>. # In the folder, hold down the Shift key and right click. # Select <kbd><samp><code>Open PowerShell window here</code></samp></kbd>. Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Types of Plugins == === Dictionary Plugins === Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Machine Plugins === Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards. '''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.''' === System Plugins === System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean). '''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].''' === Command Plugins === Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. '''See the plugin's own documentation for setup details.''' === Macro and Meta Plugins === Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output. '''To use macro and meta plugins, see the plugin's own documentation for setting up entries.''' === GUI Plugins === GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Extension Plugins === Extension plugins can be used to execute arbitrary code. '''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. {{Out of date-section|2024-04-28T12:42:49.972649}} == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 849f04683b259a63ec1f4f97b11a95b93e5609b8 2140 2139 2024-06-15T17:48:05Z Aerick 9 /* Via the built-in Plugins Manager (recommended) */ wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to <code>Tools → Plugins Manager</code> * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart Plover after installing/updating/removing plugins <blockquote>{{Info|text=If you do not see the plugins manager, follow the instructions [https://plover.wiki/index.php/Troubleshooting_Issues#Disappearing_plugins_manager here] to bring it back.}}</blockquote> The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]]<br clear=all> Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository. #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>. #* Copy this to your clipboard. # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]. #* You may need to restart after installing git. # Verify git is working. #* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS). #* Type <code>git</code> and press enter. You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app. # Select <kbd><samp><code>Open file location</code></samp></kbd>. # In the folder, hold down the Shift key and right click. # Select <kbd><samp><code>Open PowerShell window here</code></samp></kbd>. Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Types of Plugins == === Dictionary Plugins === Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Machine Plugins === Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards. '''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.''' === System Plugins === System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean). '''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].''' === Command Plugins === Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. '''See the plugin's own documentation for setup details.''' === Macro and Meta Plugins === Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output. '''To use macro and meta plugins, see the plugin's own documentation for setting up entries.''' === GUI Plugins === GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Extension Plugins === Extension plugins can be used to execute arbitrary code. '''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. {{Out of date-section|2024-04-28T12:42:49.972649}} == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 22391aa5ea06a820e939274a8a8eab204a4202a7 2141 2140 2024-06-15T17:56:55Z Aerick 9 /* Types of Plugins */ wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === * Right click the plover icon * Go to <code>Tools → Plugins Manager</code> * The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin. * You need to restart Plover after installing/updating/removing plugins <blockquote>{{Info|text=If you do not see the plugins manager, follow the instructions [https://plover.wiki/index.php/Troubleshooting_Issues#Disappearing_plugins_manager here] to bring it back.}}</blockquote> The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot! * In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]] * In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]] * You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]] * Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]] * If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]] * After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]] * For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]] * Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]]<br clear=all> Now the plugin should work. If not, ask the lovely folk on Discord for help. For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary. * Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]] * Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]] * Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]] === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository. #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>. #* Copy this to your clipboard. # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]. #* You may need to restart after installing git. # Verify git is working. #* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS). #* Type <code>git</code> and press enter. You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app. # Select <kbd><samp><code>Open file location</code></samp></kbd>. # In the folder, hold down the Shift key and right click. # Select <kbd><samp><code>Open PowerShell window here</code></samp></kbd>. Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Types of Plugins (For Users) == === Dictionary Plugins === Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Machine Plugins === Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards. '''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.''' === System Plugins === System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean). '''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].''' === Command Plugins === Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. '''See the plugin's own documentation for setup details.''' === Macro and Meta Plugins === Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output. '''To use macro and meta plugins, see the plugin's own documentation for setting up entries.''' === GUI Plugins === GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Extension Plugins === Extension plugins can be used to execute arbitrary code. '''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. {{Out of date-section|2024-04-28T12:42:49.972649}} == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins (For Developers) == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] e14f1a5b05dc957a815532f9a06120f7308edff9 User talk:LyndonBurbach24 3 1486 2145 2024-06-16T12:00:55Z Neu neutral 941 👋🏼 wikitext text/x-wiki == 👋🏼 == b6f8aa80ff205d6ffa15bf59b8f4bffe007f4062 2146 2145 2024-06-16T12:02:11Z Neu neutral 941 Neu neutral moved page [[User:LyndonBurbach24]] to [[User talk:LyndonBurbach24]]: Misspelled title wikitext text/x-wiki == 👋🏼 == b6f8aa80ff205d6ffa15bf59b8f4bffe007f4062 FAQ 0 15 2148 1698 2024-06-17T03:49:47Z Aerick 9 /* How fast can stenographers write? */ wikitext text/x-wiki == Plover == === What is stenography? === <youtube>62l64Acfidc</youtube> Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Fastest typists |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |370 WPM |} Professional stenographers with a lot of experience can transcribe spoken English at up to 300 words per minute for sustained periods of time (longer than a minute). By comparison, the fastest typists are limited to around 230 words per minute for texts with comparable material (though, shorter in length). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#How long does it take to learn?|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine. It is a small Python application that you run in the background. It translates the steno strokes to text (by emulating keyboard presses), so you can use steno with any computer program. Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]]. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here]. === Who's responsible for Plover's development? === Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current maintainer is Sammi de Guzman (Jen). === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, QWERTY is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a QWERTY or Dvorak keyboard layout to type everything out character by character. If you have ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (QWERTY, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu]. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor]. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)] |[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)] |[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)] |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)] |[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)] |[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)] |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://youtu.be/nETlhthG22Q the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). Barbara Blackburn, arguably one of the fastest Dvorak typists, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the [[The_Steno_Community |Plover discord]], most people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) Although some people have reported difficulty in typing after learning steno, this seems to be limited to a smaller group of people. === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]]) # Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently. === Will stenography be replaced with automatic voice recognition? === Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Especially for events with multiple speakers, a lot of equipment is needed just to record audio (quality microphones for each speaker, mixers, etc). Additionally, a human, in the form of an audio engineer, is still required to monitor the audio and ensure everyone's microphone is working or clipped on properly. For many situations, having a stenographer present is the easier solution. Stanley Sakai has an [https://medium.com/swlh/in-an-age-of-high-definition-digital-audio-why-do-we-still-use-human-stenographers-60ca91a65f39 in depth article] covering the recording issue with a lot more detail. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary from many years ago, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these [[The Steno Community|links to the community]]. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code] * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues] * [[Plover Wiki#Contributing to the Wiki|Editing this wiki]] * [[The Steno Community|Getting involved in the community]] * [https://www.openstenoproject.org/donate/ Donating money] * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]]. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno. * Lighter keys, so it's less fatiguing. [[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]]. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]]. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key [https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary) * [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free * [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji === Can I use Plover for programming? === Yes, and many people do! That being said, it is a huge time investment, and makes sense mostly for the ergonomic benefit only. For example: * The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo] * [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo] * Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code] To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols. ** Dictionary collections which include some programming related dictionaries *** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries *** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site]) *** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries] *** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries] *** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries] *** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries] * For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made. If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the [[glossary]]. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72]) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]]. == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="https://cdn.cloudflare.steamstatic.com/steam/apps/449000/header.jpg?t=1567716732" alt="Steno Arcade" /> [http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. <youtube>eSU5JlVXT1A</youtube> === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] 2103d73bd65c546e6bce1f2823369e5fd81d50bf 2165 2148 2024-06-19T02:24:55Z Aerick 9 add question about dictionaries wikitext text/x-wiki == Plover == === What is stenography? === <youtube>62l64Acfidc</youtube> Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Fastest typists |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |370 WPM |} Professional stenographers with a lot of experience can transcribe spoken English at up to 300 words per minute for sustained periods of time (longer than a minute). By comparison, the fastest typists are limited to around 230 words per minute for texts with comparable material (though, shorter in length). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#How long does it take to learn?|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine. It is a small Python application that you run in the background. It translates the steno strokes to text (by emulating keyboard presses), so you can use steno with any computer program. Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]]. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here]. === Who's responsible for Plover's development? === Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current maintainer is Sammi de Guzman (Jen). === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, QWERTY is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a QWERTY or Dvorak keyboard layout to type everything out character by character. If you have ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (QWERTY, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu]. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor]. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)] |[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)] |[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)] |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)] |[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)] |[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)] |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://youtu.be/nETlhthG22Q the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). Barbara Blackburn, arguably one of the fastest Dvorak typists, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the [[The_Steno_Community |Plover discord]], most people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) Although some people have reported difficulty in typing after learning steno, this seems to be limited to a smaller group of people. === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]]) # Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently. === Will stenography be replaced with automatic voice recognition? === Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Especially for events with multiple speakers, a lot of equipment is needed just to record audio (quality microphones for each speaker, mixers, etc). Additionally, a human, in the form of an audio engineer, is still required to monitor the audio and ensure everyone's microphone is working or clipped on properly. For many situations, having a stenographer present is the easier solution. Stanley Sakai has an [https://medium.com/swlh/in-an-age-of-high-definition-digital-audio-why-do-we-still-use-human-stenographers-60ca91a65f39 in depth article] covering the recording issue with a lot more detail. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary from many years ago, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these [[The Steno Community|links to the community]]. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code] * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues] * [[Plover Wiki#Contributing to the Wiki|Editing this wiki]] * [[The Steno Community|Getting involved in the community]] * [https://www.openstenoproject.org/donate/ Donating money] * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]]. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno. * Lighter keys, so it's less fatiguing. [[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]]. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]]. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key [https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary) * [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free * [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji === Can I use Plover for programming? === Yes, and many people do! That being said, it is a huge time investment, and makes sense mostly for the ergonomic benefit only. For example: * The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo] * [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo] * Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code] To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols. ** Dictionary collections which include some programming related dictionaries *** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries *** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site]) *** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries] *** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries] *** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries] *** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries] * For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made. If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the [[glossary]]. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72]) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]]. === Why does steno use dictionaries? === See [[Personalizing your dictionary#The dictionary's purpose|Personalizing your dictionary.]] == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="https://cdn.cloudflare.steamstatic.com/steam/apps/449000/header.jpg?t=1567716732" alt="Steno Arcade" /> [http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. <youtube>eSU5JlVXT1A</youtube> === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] 8d294fa3cbcfacd16a58ea22855068ebaedd07b4 2166 2165 2024-06-19T02:27:49Z Aerick 9 add fingerspelling question wikitext text/x-wiki == Plover == === What is stenography? === <youtube>62l64Acfidc</youtube> Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Fastest typists |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |370 WPM |} Professional stenographers with a lot of experience can transcribe spoken English at up to 300 words per minute for sustained periods of time (longer than a minute). By comparison, the fastest typists are limited to around 230 words per minute for texts with comparable material (though, shorter in length). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#How long does it take to learn?|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine. It is a small Python application that you run in the background. It translates the steno strokes to text (by emulating keyboard presses), so you can use steno with any computer program. Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]]. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here]. === Who's responsible for Plover's development? === Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current maintainer is Sammi de Guzman (Jen). === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, QWERTY is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a QWERTY or Dvorak keyboard layout to type everything out character by character. If you have ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (QWERTY, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu]. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor]. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)] |[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)] |[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)] |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)] |[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)] |[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)] |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://youtu.be/nETlhthG22Q the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). Barbara Blackburn, arguably one of the fastest Dvorak typists, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the [[The_Steno_Community |Plover discord]], most people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) Although some people have reported difficulty in typing after learning steno, this seems to be limited to a smaller group of people. === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]]) # Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently. === Will stenography be replaced with automatic voice recognition? === Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Especially for events with multiple speakers, a lot of equipment is needed just to record audio (quality microphones for each speaker, mixers, etc). Additionally, a human, in the form of an audio engineer, is still required to monitor the audio and ensure everyone's microphone is working or clipped on properly. For many situations, having a stenographer present is the easier solution. Stanley Sakai has an [https://medium.com/swlh/in-an-age-of-high-definition-digital-audio-why-do-we-still-use-human-stenographers-60ca91a65f39 in depth article] covering the recording issue with a lot more detail. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary from many years ago, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these [[The Steno Community|links to the community]]. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code] * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues] * [[Plover Wiki#Contributing to the Wiki|Editing this wiki]] * [[The Steno Community|Getting involved in the community]] * [https://www.openstenoproject.org/donate/ Donating money] * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]]. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno. * Lighter keys, so it's less fatiguing. [[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]]. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]]. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key [https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary) * [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free * [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji === Can I use Plover for programming? === Yes, and many people do! That being said, it is a huge time investment, and makes sense mostly for the ergonomic benefit only. For example: * The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo] * [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo] * Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code] To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols. ** Dictionary collections which include some programming related dictionaries *** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries *** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site]) *** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries] *** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries] *** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries] *** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries] * For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made. If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the [[glossary]]. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72]) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]]. === Why does steno use dictionaries? === See [[Personalizing your dictionary#The dictionary's purpose|Personalizing your dictionary.]] === How do I write a word that's not in my dictionary? === You can use fingerspelling—a letter-by-letter spelling technique. If you use this word often enough, you should add it to your dictionary after. == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="https://cdn.cloudflare.steamstatic.com/steam/apps/449000/header.jpg?t=1567716732" alt="Steno Arcade" /> [http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. <youtube>eSU5JlVXT1A</youtube> === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] bb09686d9425cd4f54778ddaa87968b5997a1e09 Invoke Plover from the command line 0 49 2149 2123 2024-06-17T03:55:17Z Aerick 9 wikitext text/x-wiki __TOC__ Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line. The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.) In the example below, assume that the following command should be executed: plover -s plover_plugins install plover-stenograph To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph</code>) accordingly. See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference] for other commands that can be executed. == Windows == # Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location" [[File:Windows plover shortcut right click menu.png|frameless|623x623px]] # You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here." [[File:Shift right click menu on plover console.png|frameless|617x617px]] # Type in the following command: .\plover_console.exe -s plover_plugins install plover-stenograph [[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]] # # Press Enter to run the command. [[File:Install plugin output in powershell.png|frameless|675x675px]] == Mac == # Open the Terminal app # Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter: /Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph == Linux (AppImage) == # Navigate to the folder containing the AppImage # Execute the command in the command-line (note that the filename depends on the version): ./plover.AppImage -s plover_plugins install plover-stenograph 03c1b6a299a835f180119bed463f3f74eaf06da8 Steno layouts and supported languages 0 19 2151 153 2024-06-17T04:07:46Z Aerick 9 added caveat for user202729's Vietnamese system wikitext text/x-wiki A chorded system, or ''system'' for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. '''System Plugins''' allow Plover to support different machine types and languages other than English. The [[wikipedia:Stenotype|American Ward Stone Ireland Stenotype]] is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover. Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system. For systems proposed for implementation, check out the [https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems issues list]. {| class="wikitable" |- |🔴 |Not supported in Plover |- |🟠 |Work in progress, not actively updated or maintained |- |🟡 |Work in progress |- |🟢 |Stable and available for Plover |} == Languages == * English: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]] ** [[Steno Layouts and Supported Languages#Michela|Michela]] ** [[Steno Layouts and Supported Languages#Phenrsteno|Phenrsteno]] ** [[Steno Layouts and Supported Languages#Velotype|Velotype]] ** [[Steno Layouts and Supported Languages#Jackdaw|Jackdaw]] ** [[Steno Layouts and Supported Languages#Kinglet|Kinglet]] * Chinese, Mandarin (國語 / 普通话): ** [[Steno Layouts and Supported Languages#Yawei|Yawei]] ** [[Steno Layouts and Supported Languages#EXun|EXun]] ** [[Steno Layouts and Supported Languages#Suoheng|Suoheng]] * Chinese, Cantonese (粵語): ** [[Steno Layouts and Supported Languages#SanSan|SanSan]] ** [[Steno Layouts and Supported Languages#MaaJik|MaaJik]] * Czech / Čeština: ** [[Steno Layouts and Supported Languages#Czech Stenograph|Stenotype]] ** [[Steno Layouts and Supported Languages#Trillo|Trillo]] ** [[Steno Layouts and Supported Languages#Plover Czech|Plover Czech]] * Danish / Dansk: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Dutch / Nederlands: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Velotype|Velotype]] * Finnish / Suomi: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Especias|Especias]] * French / Français: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Grandjean|Grandjean]] * German / Deutsch: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]] ** [[Steno Layouts and Supported Languages#German Syllatype|Syllatype]] * Greek / Ελληνικά: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Hebrew / עברית: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Hindi / हिन्दी: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Italian / Italiano: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Michela|Michela]] * Japanese / 日本語: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Sokutaipu|Sokutaipu]] ** [[Steno Layouts and Supported Languages#StenoWord|StenoWord]] ** [[Steno Layouts and Supported Languages#Hachidori|Hachidori]] ** [[Steno Layouts and Supported Languages#Frag's Japanese System|Frag]] * Korean / 한국어: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Korean CAS|CAS]] ** [[Steno Layouts and Supported Languages#Korean Sorizava|Sorizava]] * Polish / Polski: [[Steno Layouts and Supported Languages#Trillo|Trillo]] * Portuguese / Português: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Russian / Русский: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Trillo|Trillo]] * Slovak / Slovenčina: [[Steno Layouts and Supported Languages#Trillo|Trillo]] * Spanish / Español: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Grandjean|Grandjean]] ** [[Steno Layouts and Supported Languages#Especias|Especias]] * Swedish / Svenska: [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]] * Thai / ภาษาไทย: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Turkish / Türkçe: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Vietnamese / Tiếng Việt: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] == Stenotype (Ireland) == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500"> The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Plover''' |Mirabai Knight |English |Phonetic |Built-in |[https://github.com/openstenoproject/plover/blob/master/plover/assets/main.json 147k entries] |[[Learning Stenography|Learning Resources]] |- |🟢 '''Lapwing''' |[https://github.com/aerickt Aerick] |English |Phonetic |Built-in |[https://github.com/aerickt/steno-dictionaries/blob/main/lapwing-base.json 130k entries] |[https://lapwing.aerick.ca/ Learning Resources] |- |🟡 '''Cocoa''' |[https://github.com/Kaoffie Kaoffie] |English |Phonetic |Built-in | | |- |🟢 '''LaSalle''' |Claire Lefebvre-Yelle |French |Phonetic |Built-in |[https://github.com/morinted/la_tao_dictionary 4.2k entries] |Non-realtime-capable theory, taught at the ''École de sténographie judiciaire du Québec'' |- |🟡 '''Pluvier''' |[https://github.com/Vermoot Vermoot] |French |Phonetic | | |Realtime-capable theory based on LaSalle |- |🟢 '''Easy Korean Steno''' |Peter Park |Korean |Orthographic |Requires [https://github.com/openstenoproject/plover_python_dictionary plover-python-dictionary] |[https://github.com/petercpark/easy_korean_steno/blob/master/easy_Korean_steno_chorded.py Python Dictionary] | |- |🟢 '''Stanley's''' |[https://github.com/stanographer Stanley Sakai] |Spanish |Phonetic |Built-in |[https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json 12k entries] | |- |🟢 '''EO Variant''' |[https://github.com/roskoff Eliseo Ocampos] |Spanish |Phonetic |[https://github.com/roskoff/plover_spanish_system_eo_variant plover-spanish-system-eo-variant] |71k entries |Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules. |- |🔴 '''Marino''' | |Spanish |Phonetic | | |Spanish theory used in the Argentine Senate, along with Spanish Grandjean. [https://taquigrafica.ucoz.net/publ/edicion_numero_01/2-1-0-14 Overview] [https://www.facebook.com/stenocap Facebook Page] |- |🟢 '''Trillo Finnish''' |Priscilla Trillo |Finnish |Phonetic | |[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/Suomeksi.rtf 49k entries] |[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/PIKAKIRJOITUS%20SUOMEKSI.pdf Textbook] (in Finnish) |- |🟢 '''Aerick's''' |[https://github.com/aerickt Aerick] |Vietnamese |Orthographic |Built-in |[https://github.com/aerickt/steno-dictionaries/blob/main/viet.json 7k entries] |[https://github.com/aerickt/steno-dictionaries/wiki/Vietnamese-Steno Learning Resources] |- |🟠 '''plover-vi''' |user202729 |Vietnamese |Orthographic |[https://github.com/user202729/plover_vi <code>plover-vi</code>] | |Complete system with in built phrasing, but no longer working or maintained. |- |🟡 '''Hindi Devanagari''' |[https://github.com/winstond/hind_plover_dictionary winston] |Hindi |Phonetic |N/A |[https://github.com/winstond/hind_plover_dictionary 1,404 entries] |[https://github.com/winstond/hind_plover_dictionary Home Page] |} === Shavian === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500"> Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Magpie''' |Lynn (Ruma) |English (Shavian) |Orthographic | | |Capable of both Shavian and orthodox (Latin script) translation |} === Brazilian Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500"> Brazilian Portuguese system used by Paulo Paniago, published in the textbook ''Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador''. Also included in some Stenograph machines. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Brazilian Stenograph''' |Randall Adam Czerenda, Jucineia J. de Andrade Pereira |Portuguese |Phonetic |<code>[https://github.com/morinted/plover_portuguese plover-portuguese]</code> |4k entries<nowiki><br></nowiki>(available on the Plover Discord) |} === Czech Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500"> The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Czech Stenograph''' | |Czech |Phonetic |} === Greek Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500"> The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Greek Stenograph''' | |Greek |Phonetic |} === Hebrew Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500"> The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Hebrew Stenograph''' | |Hebrew |Phonetic |} === Turkish Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500"> The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Turkish Stenograph''' | |Turkish |Phonetic |} === Russian Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500"> The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Russian Stenograph''' | |Russian |Phonetic |} === Spanish Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500"> The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Spanish Stenograph''' | |Spanish |Phonetic |} === German Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500"> German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''German Stenograph''' | |German |Phonetic |<code>[https://github.com/percidae/plover_german plover-german]</code> |} === Regenpfeifer === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500"> A German steno system based on a modified English stenotype layout; the <code>-Z</code> key is replaced with <code>-N</code>. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Regenpfeifer''' |[https://github.com/mkrnr Martin Körner] |German |Phonetic |[https://github.com/mkrnr/plover_regenpfeifer <code>plover-regenpfeifer</code>] |219k entries |[https://github.com/mkrnr/regenpfeifer Dictionary generator] |} === German Syllatype === A syllabic and orthographic system with the mission to be more intuitive and easy to learn. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Syllatype''' |[https://github.com/YAMEROOOO YAMERO] |German |Orthographic |[https://github.com/YAMEROOOO/plover-german-syllatype plover-german-syllatype] |5k+ entries (syllables) | |} === 42triangles' Kana System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500"> Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''42triangles' Kana System''' |42triangles |Japanese |Orthographic (Mora + Coda) Romaji-only | | |Relies on a user IME |} === Willem's Kana System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500"> A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Willem's Kana System''' |[https://github.com/Willem3141 Willem Sonke] |Japanese |Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only |[https://github.com/Willem3141/plover_japanese_kana <code>plover-japanese-kana</code>] | |Relies on a user IME |} === Danish Hjejle === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500"> A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Hjejle''' |[https://github.com/SeaLiteral Lars Rune Præstmark] |Danish |Phonetic |Built-in |[https://github.com/SeaLiteral/hjejleOrdbog 5k entries] |} === Melani === ==== Italian ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Melani''' | |Italian |Orthographic |[https://github.com/benoit-pierre/plover_melani <code>plover-melani</code>] | |[https://www.stenolab.it/ Stenolab] |} ==== Spanish ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500"> Spanish system based on the Melani Italian layout, used at MQD. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''MQD Melani''' |[https://github.com/nvdaes Noelia Ruiz Martínez] |Spanish |Phonetic |[https://github.com/nvdaes/plover_spanish_mqd <code>plover-spanish-mqd</code>] |[https://github.com/nvdaes/plover_spanish_mqd/tree/main/plover_spanish_mqd 11k entries] |} ==== Russian ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500"> Not much is known about this layout; see [https://github.com/openstenoproject/plover/issues/492 th][https://github.com/parnikkapore/plover_thsteno plover-thsteno]is discussion about Russian steno. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Melani''' | |Russian |Phonetic |} === Thai Steno === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500"> A work-in-progress Thai steno system. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Thai Steno''' |Parnikkapore |Thai |Phonetic |[https://github.com/parnikkapore/plover_thsteno <code>plover-thsteno</code>] |} === Jade's Dutch System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500"> Dutch steno system that uses a modified version of the English stenotype layout with one extra <code>G</code> key on the left. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Jade's Dutch System''' |[https://github.com/Jade-GG Jade Geels] |Dutch |Phonetic |[https://github.com/Jade-GG/Plover_Dutch <code>plover-dutch</code>] |3.4k entries |} === Willem's Dutch System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500"> Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Willem's Dutch System''' |[https://github.com/Willem3141 Willem Sonke] |Dutch |Phonetic |<code>[https://github.com/Willem3141/plover_dutch plover-dutch]</code> |7.7k entries |} == Grandjean == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500"> The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts). {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Grandjean''' | |French |Phonetic |[https://github.com/stenomax/plover_grandjean <code>plover-grandjean</code>] |[https://github.com/azizyemloul/plover-france-dict 690k+ entries] |[https://github.com/azizyemloul/plover-france-dict GitHub] |- |🔴 '''Grandjean''' | |Spanish |Phonetic | | |[http://www.estenotipiaasociacion.com/ Asociacion Española de Estenotipistas] |} == Michela == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500"> A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent. {| class="wikitable" |+ ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Michela''' |Sillabix |Italian |Phonetic |[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano 103k entries] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano Manual] |- |🟡 '''Michela''' |Sillabix |English |Phonetic |[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json 150 entries] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction) Manual] |- |🟡 '''Midi4Text''' |Sillabix |Italian |Orthographic |[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>] |[http://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json 95k entries] |[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA) Manual] |- |🟡 '''Midi4Text''' |Sillabix |English |Orthographic |[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>] |[https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.8).json 159k entries] |[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG) Manual] |} == Possum Palantype == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500"> The [http://www.openstenoproject.org/palantype Possum Palantype] is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some [[wikipedia:Speech-to-text_reporter|STTRs]] worldwide for writing in English. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Palantype''' | |English |Phonetic |[https://github.com/morinted/plover_palantype <code>plover-palantype</code>] |21k entries |[http://www.openstenoproject.org/palantype/ Learn Palantype] |- |🔴 '''Swedish Palantype''' | |Swedish |Phonetic |<code>[https://github.com/stenoshrink/plover_swedish_palantype plover-swedish-palantype]</code> |87k entries |[https://github.com/stenoshrink/plover_swedish_palantype/tree/master/Swedish%20theory Swedish Theory] |} === Plover German Palantype === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500"> German steno system based on the Possum Palantype layout with two additional keys. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''German Palantype''' | |German |Phonetic |[https://github.com/percidae/plover_palantype_german <code>plover-palantype-german</code>] |85k entries |} === Ruben Moor's German Palantype === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''German Palantype''' |Ruben Moor |German |Phonetic | |100k entries, with plans to expand to 2 million |[https://palantype.com/ Tutorial] |} == Trillo == === Trillo Russian === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500"> A realtime theory for Russian writing based on the Tréal machine. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Trillo Russian''' |Priscilla Trillo |Russian |Phonetic |[https://github.com/morinted/plover_russian_trillo <code>plover-russian-trillo</code>] |15k entries |[https://github.com/openstenoproject/plover/files/1533593/Russian.Theory.-.ARA.doc.zip Textbook] (in mixed English/Russian) |} === Trillo West Slavic === <img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Trillo West Slavic''' |Priscilla Trillo |Czech, Slovak, Polish |Phonetic | | |[https://github.com/Plover-Trillo/WestSlavicStenography/releases/tag/%23SlavicLanguages Textbook] |} == Yawei == === Yawei === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500"> Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Yawei''' (亚伟) | |Mandarin (Traditional / Simplified) |Symmetric Toneless Pinyin | | |[https://zh.wikipedia.org/wiki/%E4%BA%9A%E4%BC%9F%E9%80%9F%E5%BD%95 Wikipedia] |} === MaaJik === <img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''MaaJik''' (孖翼) |[https://github.com/sammdot Sammi de Guzman], [https://github.com/vatnid Samuel Lo] |Cantonese (Traditional) |Symmetric Toneless Jyutping |[https://github.com/sammdot/plover-maajik <code>plover-maajik</code>] |[https://github.com/sammdot/plover-maajik/tree/main/maajik/dictionaries 314k entries] |} === SanSan === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''SanSan''' (珊々) |[https://github.com/sammdot Sammi de Guzman] |Cantonese (Traditional) |Symmetric Toneless Jyutping | | |[https://steno.sammdot.ca/explainers Steno Explainers] |} === TCIM === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''TCIM''' (千鳥詞注) |[https://github.com/Quisette Quisette C] |Mandarin (Traditional) |Symmetric Toneless Zhuyin |[https://github.com/Quisette/plover-TCIM <code>plover-tcim</code>] |} == EXun == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500"> EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''EXun''' (E 讯) | |Mandarin (Simplified) |Symmetric Toneless Pinyin |} == Suoheng == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500"> Very little is known about the Suoheng system and there are no plans to implement it in Plover. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Suoheng''' (索恒) | |Mandarin (Simplified) |Symmetric Toneless Pinyin |} == Korean CAS == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500"> The Computer Aided Steno-machine, or CAS, was developed by [http://www.koreasteno.com/ Korea Steno] and features one of the two modern stenography systems for Korean in use today. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''CAS''' | |Korean |Orthographic (Initial/Medial/Final) with Briefs |[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern C") | |[https://github.com/nsmarkop/plover_korean/tree/master/plover_korean/system/cas Theory documentation] |} == Korean Sorizava == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500"> Sorizava, developed by a [http://www.sorizava.co.kr/ company of the same name], is the second of the modern stenography systems for Korean in use today and the more recent to have been created. The Sorizava system is not currently under development. There are partial pieces of an implementation in <code>[https://github.com/nsmarkop/plover_korean plover-korean]</code> but outside of a partial dictionary no theory materials have been obtained to progress further. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Sorizava''' | |Korean |Orthographic (Initial/Medial/Final) with Briefs |[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern S") | | |} == Sokutaipu == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500"> Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Sokutaipu''' (ソクタイプ) | |Japanese |Semi-Symmetric 2 Mora + 1 Coda Pure Kana |[https://github.com/na4zagin3/plover_japanese_sokutaipu <code>plover-japanese-sokutaipu</code>] |365k entries |[http://hoangmoc123.d.dooo.jp/sokutaipu.html Kana table] |} == StenoWord == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500"> The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''StenoWord''' (ステノワード) | |Japanese |Orthographic 1-Syllable Pure Kana |<code>plover-japanese-stenoword</code> |2.6k entries |[http://hoangmoc123.d.dooo.jp/Stenoword.html Kana table] |} == Frag's Japanese System == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Frag's Japanese System''' |Frag |Japanese |Symmetric 2 Mora + 2 Coda Stucture-based kanji conversion |} A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke. This is the updated version of the Japanese layout available on TypeyType. == Hachidori == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500"> Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Hachidori''' (はちどり) |[https://github.com/Kaoffie Kaoffie] |Japanese |Symmetric 2 Mora + 2 Coda |} == Velotype == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500"> The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in [https://github.com/kqr/qweyboard Qweyboard] by kqr. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Velotype''' | |English, Dutch |Orthographic |[https://github.com/AlexandraAlter/plover_syllabic_chording <code>plover-syllabic-chording</code>] | |[https://www.velotype.com/en/homepage-eng/ Official website] |} == Jackdaw == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500"> An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Jackdaw''' | |English |Orthographic |<code>[https://github.com/user202729/plover-jackdaw-alt1 plover-jackdaw-alt1]</code> | |[https://www.openstenoproject.org/learn-plover/jackdaw.html Learn Plover! Jackdaw tutorial] |} == Kinglet == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500"> Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Kinglet''' |Zachary Brown |English |Orthographic |[https://drive.google.com/file/d/0B9Je8TDYCh1xSVRjVmQ0RUF0ejA/edit?resourcekey=0-6XylRvd298I4w4OVUc-IDg Plover 2.5.8 modified for Kinglet] | |[https://www.openstenoproject.org/learn-plover/kinglet-a-letter-based-stenotype-system.html Learn Plover! Kinglet tutorial] |} == Phenrsteno == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500"> Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Phenrsteno''' |[https://github.com/chambln Gregory Chamberlain] |English |Phonetic |[https://github.com/chambln/plover-phenrsteno <code>plover-phenrsteno</code>] |15k entries |[https://github.com/chambln/plover-phenrsteno/wiki Phenrsteno wiki] |} == Plover Czech == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Plover Czech''' |[https://github.com/lambdadog Ashlynn Anderson] |Czech |Phonetic |[https://github.com/lambdadog/plover_czech <code>plover-czech</code>] |} == Especias == === Finnish Especias === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500"> An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Especias''' |[https://github.com/SeaLiteral Lars Rune Præstmark] |Finnish |Orthographic |Built-in |[https://github.com/SeaLiteral/especias Dictionary] |} === Spanish Especias === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500"> A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Especias''' |[https://github.com/SeaLiteral Lars Rune Præstmark] |Spanish |Orthographic |Built-in |[https://github.com/SeaLiteral/especias Dictionary] |} [[Category:Stenography]] d57871c59ba5570c63657b7d8f213090fa896668 Beginner's Guide 0 4 2155 1690 2024-06-18T14:03:55Z Aerick 9 remove neu edits wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. <!--T:18--> See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|None|Thumb|Demonstration of the arpeggiate function.]] <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|none|thumb]] <!--T:20--> <span id="rolling-your-strokes"></span> ==== Rolling your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> See below for a demonstration of rolling: [[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]] <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See the [[Supported Hardware]] page for a [https://plover.wiki/index.php/Supported_Hardware#Known_supported_keyboards list of supported keyboards]. * See also: [https://plover.wiki/index.php/Supported_Hardware#Which_type_of_key_switch_should_I_choose? Which type of key switch should I choose?] <!--T:31--> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === <!--T:32--> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: <!--T:33--> * [https://plover.wiki/index.php/Supported_Hardware#Keytoppers Keytoppers] * [https://plover.wiki/index.php/Supported_Hardware#keycaps Keycaps] <!--T:34--> You can also use [https://plover.wiki/index.php/Supported_Hardware#NKRO_keyboards_with_an_ortholinear_layout a keyboard with an ortholinear layout]. <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling machines designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [https://plover.wiki/index.php/Supported_Hardware#Dedicated_machines_designed_for_use_with_Plover Dedicated machines designed for use with Plover]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. <!--T:44--> <span id="keyboard"></span> === Keyboard === <!--T:45--> By default, Plover will use your keyboard as its input device. <!--T:46--> # Run Plover. # Click the Output: '''<kbd><samp>Enabled</samp></kbd>''' radio button. <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. <!--T:50--> This can be somewhat circumvented using a key input delay, as shown below:<br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Key Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:64--> <span id="stenography-machine"></span> === Stenography machine === <!--T:65--> <!--T:66--> Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: <!--T:67--> # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. <!--T:68--> See [[Supported_Hardware#Supported_protocols| Supported protocols]] for more information. <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:78--> [[Category:Plover]] </translate> 05a21a7f084bb9b19c566480b49a4444a65a1a17 2158 2155 2024-06-18T23:48:03Z Aerick 9 /* Download and Install Plover */ wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time. <!--T:18--> See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]] <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|thumb|center]] <!--T:20--> <span id="rolling-your-strokes"></span> ==== Roll your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> See below for a demonstration of rolling: [[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]] <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See the [[Supported Hardware]] page for a [https://plover.wiki/index.php/Supported_Hardware#Known_supported_keyboards list of supported keyboards]. * See also: [https://plover.wiki/index.php/Supported_Hardware#Which_type_of_key_switch_should_I_choose? Which type of key switch should I choose?] <!--T:31--> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === <!--T:32--> Most keyboards have their keys arranged in staggered rows. This makes it difficult to press two keys in a column with a single finger. If you have a mechanical keyboard, flipping the top row of key caps can help make this a little more comfortable. [[File:Mech keyboard with top row flipped.png|alt=Mech keyboard with top row flipped|center|thumb|637x637px|Flipping the top row of key caps can make a mechanical keyboard easier to steno on.]] You can also use [[Supported Hardware#Keytoppers|keytoppers]], or print some custom [[Supported Hardware#Keycaps|keycaps]] if you have a 3D printer. Keyboards with ortholinear layouts (a grid arrangement of keys) can also be [[Supported Hardware#NKRO keyboards with an ortholinear layout|adapted for use with Plover]]. <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling machines designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [https://plover.wiki/index.php/Supported_Hardware#Dedicated_machines_designed_for_use_with_Plover Dedicated machines designed for use with Plover]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine. * [[Supported Hardware#Stenotype Machines|Setting up a professional steno machine with Plover]]. * [[Supported Hardware#Setting Up a Hobbyist Machine With Plover|Setting up a hobbyist steno keyboard with Plover]].<!--T:45--> === Enable Plover === Once you have set up your machine with Plover <!--T:46--> # Run Plover. # In the main window of Plover, set <code>Output</code> to <code>Enabled</code> <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below: <!--T:50--> <br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so: [[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]] If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] . * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling your strokes or arpeggiating. <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:78--> [[Category:Plover]] </translate> 248f5552231fb3cff9e2cd990a53376df1018ea9 2159 2158 2024-06-19T00:34:07Z Aerick 9 add section on personalizing dictionaries. wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time. <!--T:18--> See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]] <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|thumb|center]] <!--T:20--> <span id="rolling-your-strokes"></span> ==== Roll your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> See below for a demonstration of rolling: [[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]] <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See the [[Supported Hardware]] page for a [https://plover.wiki/index.php/Supported_Hardware#Known_supported_keyboards list of supported keyboards]. * See also: [https://plover.wiki/index.php/Supported_Hardware#Which_type_of_key_switch_should_I_choose? Which type of key switch should I choose?] <!--T:31--> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === <!--T:32--> Most keyboards have their keys arranged in staggered rows. This makes it difficult to press two keys in a column with a single finger. If you have a mechanical keyboard, flipping the top row of key caps can help make this a little more comfortable. [[File:Mech keyboard with top row flipped.png|alt=Mech keyboard with top row flipped|center|thumb|637x637px|Flipping the top row of key caps can make a mechanical keyboard easier to steno on.]] You can also use [[Supported Hardware#Keytoppers|keytoppers]], or print some custom [[Supported Hardware#Keycaps|keycaps]] if you have a 3D printer. Keyboards with ortholinear layouts (a grid arrangement of keys) can also be [[Supported Hardware#NKRO keyboards with an ortholinear layout|adapted for use with Plover]]. <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling machines designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [https://plover.wiki/index.php/Supported_Hardware#Dedicated_machines_designed_for_use_with_Plover Dedicated machines designed for use with Plover]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine. * [[Supported Hardware#Stenotype Machines|Setting up a professional steno machine with Plover]]. * [[Supported Hardware#Setting Up a Hobbyist Machine With Plover|Setting up a hobbyist steno keyboard with Plover]].<!--T:45--> === Enable Plover === Once you have set up your machine with Plover <!--T:46--> # Run Plover. # In the main window of Plover, set <code>Output</code> to <code>Enabled</code> <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below: <!--T:50--> <br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so: [[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]] If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] . * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling your strokes or arpeggiating. <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:79--> <span id="personalizing-your-dictionary></span> == Personalizing your dictionary == <!--T:80--> English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes. <!--T:81--> English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things. <!--T:82--> For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else. <!--T:83--> When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write. More information: [[Personalizing your dictionary]]. <!--T:78--> [[Category:Plover]] </translate> 67589e6e8cbf2cc70b61f6ab131c701ca3b9d253 File:Mech keyboard with top row flipped.png 6 1490 2156 2024-06-18T23:19:17Z Aerick 9 wikitext text/x-wiki Mech keyboard with top row flipped a9c939b7272c8d5099157d0b2a0fdaec098b64e3 File:Steno keys on QWERTY keyboard by Jen.png 6 1491 2157 2024-06-18T23:40:11Z Aerick 9 wikitext text/x-wiki Steno keys on QWERTY keyboard by Jen 55b0623947624a3507116bc7479bbe5503a1421c Personalizing your dictionary 0 1492 2160 2024-06-19T01:51:59Z Aerick 9 Created page with "The dictionary's purpose English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps English words to steno. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers. For languages with much more r..." wikitext text/x-wiki The dictionary's purpose English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps English words to steno. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers. For languages with much more regular spelling, dictionaries aren't always necessary. It may be desirable to design what's called an orthographic system that is based entirely on spelling; chords on the steno layout are assigned to characters rather than sounds. With these, dictionaries may not even be necessary as the system only has to combine character groups together. Orthographic systems do exist for English, but they are generally slower than more traditional steno systems. This is mainly due to the less consistent spelling in the English language. The rationale behind different dictionaries English steno is built on the idea that no two stenographers' dictionaries are the same. For some, this may seem odd—why not just standardize steno and have everyone learn the same theory/dictionary? Well first of all, English is a complicated language with different dialects and accents. With steno being primarily phonetic, it would difficult to create a single theory for all English speakers. More importantly, however, there are different ideas as to how the English language should be encoded on the the layout. Some steno theories are more heavy in rote memorization and require you to memorize more arbitrary steno strokes. Some steno theories rely more heavily on spelling instead of phonetics. Some steno theories like to split words more logically, while others may be more open-ended. There is no single "best" steno theory since some ideas are more intuitive than others depending on the person. Different theories click for different people. Different dictionaries within the same theory Even within one theory, different stenographers will have different dictionaries. This is due to the fact that a lot of steno theories are at least a little open-ended. It would be difficult to create a rule for every single edge case in the English language. Additionally, to expect everyone to follow these subtle rules would be unrealistic. Most hobbyists start off adding simple entries to their dictionaries. For example, the steno stroke APD does not represent any word in the English language. If you write about the Albuquerque Police Department often, this is a good stroke that you can use. On the other hand, you may find yourself accidentally stroking APD instead of APT when writing the word "apt"; this would be a good misstroke entry to add. It is also conceivable that the sound represented by this stroke is actually a word used in a particular niche circle. What this stroke is assigned to depends entirely on the person, their writing style, and what they write about. c25b6c216f0253efcc881a8fd6bac1c2d3b9e857 2161 2160 2024-06-19T01:52:40Z Aerick 9 headers wikitext text/x-wiki == The dictionary's purpose == English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps English words to steno. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers. For languages with much more regular spelling, dictionaries aren't always necessary. It may be desirable to design what's called an orthographic system that is based entirely on spelling; chords on the steno layout are assigned to characters rather than sounds. With these, dictionaries may not even be necessary as the system only has to combine character groups together. Orthographic systems do exist for English, but they are generally slower than more traditional steno systems. This is mainly due to the less consistent spelling in the English language. == The rationale behind different dictionaries == English steno is built on the idea that no two stenographers' dictionaries are the same. For some, this may seem odd—why not just standardize steno and have everyone learn the same theory/dictionary? Well first of all, English is a complicated language with different dialects and accents. With steno being primarily phonetic, it would difficult to create a single theory for all English speakers. More importantly, however, there are different ideas as to how the English language should be encoded on the the layout. Some steno theories are more heavy in rote memorization and require you to memorize more arbitrary steno strokes. Some steno theories rely more heavily on spelling instead of phonetics. Some steno theories like to split words more logically, while others may be more open-ended. There is no single "best" steno theory since some ideas are more intuitive than others depending on the person. Different theories click for different people. == Different dictionaries within the same theory == Even within one theory, different stenographers will have different dictionaries. This is due to the fact that a lot of steno theories are at least a little open-ended. It would be difficult to create a rule for every single edge case in the English language. Additionally, to expect everyone to follow these subtle rules would be unrealistic. Most hobbyists start off adding simple entries to their dictionaries. For example, the steno stroke APD does not represent any word in the English language. If you write about the Albuquerque Police Department often, this is a good stroke that you can use. On the other hand, you may find yourself accidentally stroking APD instead of APT when writing the word "apt"; this would be a good misstroke entry to add. It is also conceivable that the sound represented by this stroke is actually a word used in a particular niche circle. What this stroke is assigned to depends entirely on the person, their writing style, and what they write about. 69035645db1c95554bcc469c218a38d9b21b303c 2162 2161 2024-06-19T01:54:41Z Aerick 9 /* Different dictionaries within the same theory */ wikitext text/x-wiki == The dictionary's purpose == English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps English words to steno. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers. For languages with much more regular spelling, dictionaries aren't always necessary. It may be desirable to design what's called an orthographic system that is based entirely on spelling; chords on the steno layout are assigned to characters rather than sounds. With these, dictionaries may not even be necessary as the system only has to combine character groups together. Orthographic systems do exist for English, but they are generally slower than more traditional steno systems. This is mainly due to the less consistent spelling in the English language. == The rationale behind different dictionaries == English steno is built on the idea that no two stenographers' dictionaries are the same. For some, this may seem odd—why not just standardize steno and have everyone learn the same theory/dictionary? Well first of all, English is a complicated language with different dialects and accents. With steno being primarily phonetic, it would difficult to create a single theory for all English speakers. More importantly, however, there are different ideas as to how the English language should be encoded on the the layout. Some steno theories are more heavy in rote memorization and require you to memorize more arbitrary steno strokes. Some steno theories rely more heavily on spelling instead of phonetics. Some steno theories like to split words more logically, while others may be more open-ended. There is no single "best" steno theory since some ideas are more intuitive than others depending on the person. Different theories click for different people. == Different dictionaries within the same theory == Even within one theory, different stenographers will have different dictionaries. This is due to the fact that a lot of steno theories are at least a little open-ended. It would be difficult to create a rule for every single edge case in the English language. Additionally, to expect everyone to follow these subtle rules would be unrealistic. Most hobbyists start off adding simple entries to their dictionaries. For example, the steno stroke <code>APD</code> does not represent any word in the English language. If you write about the Albuquerque Police Department often, this is a good stroke that you can use. On the other hand, you may find yourself accidentally stroking <code>APD</code> instead of <code>APT</code> when writing the word "apt"; this would be a good misstroke entry to add. It is also conceivable that the sound represented by this stroke is actually a word found in some particular niche circle. In this case, it may make sense to an individual part of this community to assign <code>APD</code> to this niche term. What this stroke is assigned to depends entirely on the person, their writing style, and what they write about. 6c4e3bf202cd582380984463f68f0c0e155b70ef 2163 2162 2024-06-19T02:23:02Z Aerick 9 wikitext text/x-wiki == The dictionary's purpose == English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps English words to steno. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers. For languages with much more regular spelling, dictionaries aren't always necessary. It may be desirable to design what's called an orthographic system that is based entirely on spelling; chords on the steno layout are assigned to characters rather than sounds. With these, dictionaries may not even be necessary as the system only has to combine character groups together. Orthographic systems do exist for English, but they are generally slower than more traditional steno systems. This is mainly due to the less consistent spelling in the English language. == The rationale behind different dictionaries == English steno is built on the idea that no two stenographers' dictionaries are the same. For some, this may seem odd—why not just standardize steno and have everyone learn the same theory/dictionary? Well first of all, English is a complicated language with different dialects and accents. With steno being primarily phonetic, it would difficult to create a single theory for all English speakers. More importantly, however, there are different ideas as to how the English language should be encoded on the the layout. Some steno theories are more heavy in rote memorization and require you to memorize more arbitrary steno strokes. Some steno theories rely more heavily on spelling instead of phonetics. Some steno theories like to split words more logically, while others may be more open-ended. There is no single "best" steno theory since some ideas are more intuitive than others depending on the person. Different theories click for different people. == Different dictionaries within the same theory == Even within one theory, different stenographers will have different dictionaries. This is due to the fact that a lot of steno theories are at least a little open-ended. It would be difficult to create a rule for every single edge case in the English language. Additionally, to expect everyone to follow these subtle rules would be unrealistic. Most hobbyists start off adding simple entries to their dictionaries. For example, the steno stroke <code>APD</code> does not represent any word in the English language. If you write about the Albuquerque Police Department often, this is a good stroke that you can use. On the other hand, you may find yourself accidentally stroking <code>APD</code> instead of <code>APT</code> when writing the word "apt"; this would be a good misstroke entry to add. It is also conceivable that the sound represented by this stroke is actually a word found in some particular niche circle. In this case, it may make sense to an individual part of this community to assign <code>APD</code> to this niche term. What this stroke is assigned to depends entirely on the person, their writing style, and what they write about. [[Category:Plover]] afbbac44a86d36d147bf10245396c1f1fffb8c47 2164 2163 2024-06-19T02:24:17Z Aerick 9 wikitext text/x-wiki == The dictionary's purpose == English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps English words to steno. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers. For languages with much more regular spelling, dictionaries aren't always necessary. It may be desirable to design what's called an orthographic system that is based entirely on spelling; chords on the steno layout are assigned to characters rather than sounds. With these, dictionaries may not even be necessary as the system only has to combine character groups together. Orthographic systems do exist for English, but they are generally slower than more traditional steno systems. This is mainly due to the less consistent spelling in the English language. == The rationale behind different dictionaries == English steno is built on the idea that no two stenographers' dictionaries are the same. For some, this may seem odd—why not just standardize steno and have everyone learn the same theory/dictionary? Well first of all, English is a complicated language with different dialects and accents. With steno being primarily phonetic, it would difficult to create a single theory for all English speakers. More importantly, however, there are different ideas as to how the English language should be encoded on the the layout. Some steno theories are more heavy in rote memorization and require you to memorize more arbitrary steno strokes. Some steno theories rely more heavily on spelling instead of phonetics. Some steno theories like to split words more logically, while others may be more open-ended. There is no single "best" steno theory since some ideas are more intuitive than others depending on the person. Different theories click for different people. == Different dictionaries within the same theory == Even within one theory, different stenographers will have different dictionaries. This is due to the fact that a lot of steno theories are at least a little open-ended. It would be difficult to create a rule for every single edge case in the English language. Additionally, to expect everyone to follow these subtle rules would be unrealistic. Most hobbyists start off adding simple entries to their dictionaries. For example, the steno stroke <code>APD</code> does not represent any word in the English language. If you write about the Albuquerque Police Department often, this is a good stroke that you can use. On the other hand, you may find yourself accidentally stroking <code>APD</code> instead of <code>APT</code> when writing the word "apt"; this would be a good misstroke entry to add. It is also conceivable that the sound represented by this stroke is actually a word found in some particular niche circle. In this case, it may make sense to an individual part of this community to assign <code>APD</code> to this niche term. What this stroke is assigned to depends entirely on the person, their writing style, and what they write about. [[Category:Plover]] __FORCETOC__ d3badba4a2e59ae7ccb86e8a80a6ec172732ab58 Talk:Supported hardware 1 1493 2167 2024-06-19T02:38:37Z Aerick 9 /* Professional machines */ new section wikitext text/x-wiki == Professional machines == Would it make sense to create a page for each machine and have the table just link the instructions? For less tech-savvy people especially, I think a whole page dedicated to a machine(s) with pictures and lots of details would be very helpful. Of course, we don't have to create all of them all at once. 7ac50dc3a3f44e2eb2863434c78096a13193d7f7 2168 2167 2024-06-19T02:40:56Z Aerick 9 /* NKRO keyboards */ new section wikitext text/x-wiki == Professional machines == Would it make sense to create a page for each machine and have the table just link the instructions? For less tech-savvy people especially, I think a whole page dedicated to a machine(s) with pictures and lots of details would be very helpful. Of course, we don't have to create all of them all at once. == NKRO keyboards == Do we really need to list every single keyboard that supports NKRO (or even the ones that don't)? Many of them aren't even in production anymore, and with a million different brands out there, I don't think it's worthwhile to keep it up to date. I also haven't heard of false advertising really being an issue for NKRO; maybe we can just list a few that are relatively easy to get, and keep the advice about searching "NKRO keyboard"? 912671266754d9956ec42796f7c9040c4a7b2af0 Shrimple 0 1494 2173 2024-06-20T12:27:37Z .kevinlel 1636 🦐 wikitext text/x-wiki '''Shrimple''' is a method of "multi-character [[fingerspelling]]" with the entire keyboard rather than just the left hand and vowels. It uses an orthographic theory similar to the [[Velotype]], but on the typical [[WSI]] stenography layout. Shrimple can be toggled on and off with strokes, or instead used with a dedicated key. You can find its dictionary at https://github.com/StenoHarri/steno-Python-dictionaries/blob/main/Shrimple-theory.py. As it is a Python dictionary, you will need the plover-python-dictionary [[plugin]] for it to work. == Example == h === With an entry stroke === === With a dedicated key === == Editing the dictionary == 5b72b80ea7a77a8a4dcba09f7685e011c234dd0a 2174 2173 2024-06-20T12:30:51Z .kevinlel 1636 fixing links wikitext text/x-wiki '''Shrimple''' is a method of "multi-character [[fingerspelling]]" with the entire keyboard rather than just the left hand and vowels. It uses an orthographic theory similar to the [[Steno Layouts and Supported Languages#Velotype|Velotype]], but on the typical [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Ireland]] stenography layout. Shrimple can be toggled on and off with strokes, or instead used with a dedicated key. You can find its dictionary at https://github.com/StenoHarri/steno-Python-dictionaries/blob/main/Shrimple-theory.py. As it is a Python dictionary, you will need the plover-python-dictionary [[Plugins|plugin]] for it to work. == Example == h === With an entry stroke === === With a dedicated key === == Editing the dictionary == 13c05e460fad0f439dc68a33e904197b3e60889c User:.kevinlel 2 1495 2175 2024-06-20T12:38:30Z .kevinlel 1636 Created page with "h" wikitext text/x-wiki h 27d5482eebd075de44389774fce28c69f45c8a75 File:Auto-reconnect-test.png 6 1496 2177 2024-06-23T15:21:19Z Aerick 9 wikitext text/x-wiki Refresh and drop down menu highlighted to test if auto-reconnect-machine plugin will work. a09876ba8cf9b18a6fc36b69b3043cdbcc97e022 File:Plover-auto-reconnect-plugin-configuration.png 6 1497 2178 2024-06-23T15:32:35Z Aerick 9 wikitext text/x-wiki Enabling the plover-auto-reconnect-machine plugin b67dc8052ceb57e3c25ed29f3bb8f098847767fb File:State-disconnected.svg 6 1498 2179 2024-06-23T15:37:19Z Aerick 9 wikitext text/x-wiki Disconnected plover state. 58cf012e5337ab8382affa4a63c9c9b01fd29c1b Auto reconnect 0 1499 2180 2024-06-23T15:40:30Z Aerick 9 Created page with "== Background == For steno writers that use serial protocols such as Gemini PR or TX Bolt, Plover requires the user to manually press the reconnect machine button if the writer is unplugged and replugged. The <code>plover-auto-reconnect-machine</code> plugin can handle this automatically. However, if the serial port changes between plugs, please note that this plugin will not work. This can be checked by going to <code>Configure → Machine</code> and follow the instruc..." wikitext text/x-wiki == Background == For steno writers that use serial protocols such as Gemini PR or TX Bolt, Plover requires the user to manually press the reconnect machine button if the writer is unplugged and replugged. The <code>plover-auto-reconnect-machine</code> plugin can handle this automatically. However, if the serial port changes between plugs, please note that this plugin will not work. This can be checked by going to <code>Configure → Machine</code> and follow the instructions below: # Open the <code>Port</code> drop down menu. # Take note of the serial port that your machine is using. # Unplug your writer. # Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover). # Plug in your writer. # Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover). # Open the <code>Port</code> drop down menu. # Check if the new serial port is the same. #* If they are the same, you can proceed with this page to set up auto reconnect. #* If they are different, auto reconnect may not work. [[File:Auto-reconnect-test.png|alt=Plover configuration machine tab with refresh button highlighted. Drop down menu options highlighted.|center|thumb|708x708px|Left: <code>Refresh</code>/<code>Scan</code> button. Right: drop down menu options.]] == Installing the <code>plover-auto-reconnect-machine</code> plugin == # Open the plugins manager. # Find <code>plover-auto-reconnect-machine</code> in the list. # Press <code>Install/Update</code> # Proceed with the installation. # Press <code>Restart</code> after it is finished. For more detailed steps for installation, see the [[Plugins#How to Install Plugins|plugins page]]. == Setting up the <code>plover-auto-reconnect-machine</code> plugin == # In Plover's main window, go to <code>Configure → Plugins</code>. # Check the box next to <code>plover-auto-reconnect-machine</code>. # Press <code>Apply</code> and then <code>OK</code>. [[File:Plover-auto-reconnect-plugin-configuration.png|alt=Plover plugins tab with the plover-auto-reconnect-machine plugin check box.|center|thumb|502x502px|Check the box to enable the <code>plover-auto-reconnect-machine</code> plugin.]] == Verify it works == # Make sure your machine is set up correctly. # Write some words to test your configuration. # Unplug your writer. # Plug it back in and wait a few seconds. # Plover's status should go from <code>Disconnected</code>[[File:State-disconnected.svg|frameless|28x28px]] to <code>Connected</code>[[File:State-enabled.svg|frameless|28x28px]] # Write some words to see if it works. d7f9145bd42b692351f455403d31ea30f2cf0be5 2181 2180 2024-06-23T15:40:52Z Aerick 9 wikitext text/x-wiki == Background == For steno writers that use serial protocols such as Gemini PR or TX Bolt, Plover requires the user to manually press the reconnect machine button if the writer is unplugged and replugged. The <code>plover-auto-reconnect-machine</code> plugin can handle this automatically. However, if the serial port changes between plugs, please note that this plugin will not work. This can be checked by going to <code>Configure → Machine</code> and follow the instructions below: # Open the <code>Port</code> drop down menu. # Take note of the serial port that your machine is using. # Unplug your writer. # Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover). # Plug in your writer. # Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover). # Open the <code>Port</code> drop down menu. # Check if the new serial port is the same. #* If they are the same, you can proceed with this page to set up auto reconnect. #* If they are different, auto reconnect may not work. [[File:Auto-reconnect-test.png|alt=Plover configuration machine tab with refresh button highlighted. Drop down menu options highlighted.|center|thumb|708x708px|Left: <code>Refresh</code>/<code>Scan</code> button. Right: drop down menu options.]] == Installing the <code>plover-auto-reconnect-machine</code> plugin == # Open the plugins manager. # Find <code>plover-auto-reconnect-machine</code> in the list. # Press <code>Install/Update</code> # Proceed with the installation. # Press <code>Restart</code> after it is finished. For more detailed steps for installation, see the [[Plugins#How to Install Plugins|plugins page]]. == Setting up the <code>plover-auto-reconnect-machine</code> plugin == # In Plover's main window, go to <code>Configure → Plugins</code>. # Check the box next to <code>plover-auto-reconnect-machine</code>. # Press <code>Apply</code> and then <code>OK</code>. [[File:Plover-auto-reconnect-plugin-configuration.png|alt=Plover plugins tab with the plover-auto-reconnect-machine plugin check box.|center|thumb|502x502px|Check the box to enable the <code>plover-auto-reconnect-machine</code> plugin.]] == Verify it works == # Make sure your machine is set up correctly. # Write some words to test your configuration. # Unplug your writer. # Plug it back in and wait a few seconds. # Plover's status should go from <code>Disconnected</code>[[File:State-disconnected.svg|frameless|28x28px]] to <code>Connected</code>[[File:State-enabled.svg|frameless|28x28px]] # Write some words to see if it works. [[Category:Plover]] f63131459b9c89d4a69c18edab6da344e1dbfd07 2182 2181 2024-06-23T15:41:03Z Aerick 9 Aerick moved page [[Autoreconnect]] to [[Auto reconnect]] without leaving a redirect wikitext text/x-wiki == Background == For steno writers that use serial protocols such as Gemini PR or TX Bolt, Plover requires the user to manually press the reconnect machine button if the writer is unplugged and replugged. The <code>plover-auto-reconnect-machine</code> plugin can handle this automatically. However, if the serial port changes between plugs, please note that this plugin will not work. This can be checked by going to <code>Configure → Machine</code> and follow the instructions below: # Open the <code>Port</code> drop down menu. # Take note of the serial port that your machine is using. # Unplug your writer. # Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover). # Plug in your writer. # Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover). # Open the <code>Port</code> drop down menu. # Check if the new serial port is the same. #* If they are the same, you can proceed with this page to set up auto reconnect. #* If they are different, auto reconnect may not work. [[File:Auto-reconnect-test.png|alt=Plover configuration machine tab with refresh button highlighted. Drop down menu options highlighted.|center|thumb|708x708px|Left: <code>Refresh</code>/<code>Scan</code> button. Right: drop down menu options.]] == Installing the <code>plover-auto-reconnect-machine</code> plugin == # Open the plugins manager. # Find <code>plover-auto-reconnect-machine</code> in the list. # Press <code>Install/Update</code> # Proceed with the installation. # Press <code>Restart</code> after it is finished. For more detailed steps for installation, see the [[Plugins#How to Install Plugins|plugins page]]. == Setting up the <code>plover-auto-reconnect-machine</code> plugin == # In Plover's main window, go to <code>Configure → Plugins</code>. # Check the box next to <code>plover-auto-reconnect-machine</code>. # Press <code>Apply</code> and then <code>OK</code>. [[File:Plover-auto-reconnect-plugin-configuration.png|alt=Plover plugins tab with the plover-auto-reconnect-machine plugin check box.|center|thumb|502x502px|Check the box to enable the <code>plover-auto-reconnect-machine</code> plugin.]] == Verify it works == # Make sure your machine is set up correctly. # Write some words to test your configuration. # Unplug your writer. # Plug it back in and wait a few seconds. # Plover's status should go from <code>Disconnected</code>[[File:State-disconnected.svg|frameless|28x28px]] to <code>Connected</code>[[File:State-enabled.svg|frameless|28x28px]] # Write some words to see if it works. [[Category:Plover]] f63131459b9c89d4a69c18edab6da344e1dbfd07 2194 2182 2024-06-23T18:18:57Z Aerick 9 /* Installing the plover-auto-reconnect-machine plugin */ wikitext text/x-wiki == Background == For steno writers that use serial protocols such as Gemini PR or TX Bolt, Plover requires the user to manually press the reconnect machine button if the writer is unplugged and replugged. The <code>plover-auto-reconnect-machine</code> plugin can handle this automatically. However, if the serial port changes between plugs, please note that this plugin will not work. This can be checked by going to <code>Configure → Machine</code> and follow the instructions below: # Open the <code>Port</code> drop down menu. # Take note of the serial port that your machine is using. # Unplug your writer. # Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover). # Plug in your writer. # Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover). # Open the <code>Port</code> drop down menu. # Check if the new serial port is the same. #* If they are the same, you can proceed with this page to set up auto reconnect. #* If they are different, auto reconnect may not work. [[File:Auto-reconnect-test.png|alt=Plover configuration machine tab with refresh button highlighted. Drop down menu options highlighted.|center|thumb|708x708px|Left: <code>Refresh</code>/<code>Scan</code> button. Right: drop down menu options.]] == Plugin installation == # Open the plugins manager. # Find <code>plover-auto-reconnect-machine</code> in the list. # Press <code>Install/Update</code> # Proceed with the installation. # Press <code>Restart</code> after it is finished. For more detailed steps for installation, see the [[Plugins#How to Install Plugins|plugins page]]. == Plugin setup == # In Plover's main window, go to <code>Configure → Plugins</code>. # Check the box next to <code>plover-auto-reconnect-machine</code>. # Press <code>Apply</code> and then <code>OK</code>. [[File:Plover-auto-reconnect-plugin-configuration.png|alt=Plover plugins tab with the plover-auto-reconnect-machine plugin check box.|center|thumb|502x502px|Check the box to enable the <code>plover-auto-reconnect-machine</code> plugin.]] == Verify it works == # Make sure your machine is set up correctly. # Write some words to test your configuration. # Unplug your writer. # Plug it back in and wait a few seconds. # Plover's status should go from <code>Disconnected</code>[[File:State-disconnected.svg|frameless|28x28px]] to <code>Connected</code>[[File:State-enabled.svg|frameless|28x28px]] # Write some words to see if it works. [[Category:Plover]] 7cdcc17c1c8aec75e33105cf32e44d4ee22018fe Supported hardware 0 10 2183 2176 2024-06-23T15:41:47Z Aerick 9 /* Autoreconnect */ wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of June 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of June 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of June 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of June 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of June 2024): In stock | $100 |}<span id="diy-machines"></span> == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} == Setting Up a Hobbyist Machine With Plover == Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below or the video tutorial. <youtube>2tp_hSVCKN8</youtube> === Main method === This method involves determining the serial port for Plover to listen to. # Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button. #* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]] # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Open the <code>Port</code> drop down menu. #* If you see your device name show up, select it. #* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]] # Press <code>Apply</code> and <code>OK</code> # Test that your machine is working #* Open the paper tape (<code>Tools → Paper tape</code>) #* Press some keys on your machine #* Verify that they show up in the paper tape === Trial and error method === Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try. # In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Select the first option in the <code>Port</code> drop down menu. # Press <code>Apply</code> and <code>OK</code> # Open the paper tape and press some keys on your machine. #* If you see output in the paper tape, you are done. #* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu. === Serial protocol limitations === If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button. [[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]] If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again. ==== Autoreconnect ==== On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. For more details, see the [[auto reconnect]] page. == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] eb8672d5f24a841211f21d81daaf41a6568e5064 2196 2183 2024-06-23T19:50:56Z Aerick 9 /* Move set up to new page */ wikitext text/x-wiki This page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]] # [[Supported Hardware#Stenotype Machines|A stenotype machine]] # [[Supported Hardware#Keyboards|A standard computer keyboard]] # [[Supported Hardware#Video Game Controller|A video game controller]] = Dedicated machines designed for use with Plover = Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span> == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g). <!-- Let's try to keep it alphabetical --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About ! Price (USD) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of June 2024): In stock | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of June 2024): In stock | $170 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of June 2024): In stock | $125 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] | $138 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of June 2024): In stock | $90 (+ $10 shipping) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | [https://www.stenokeyboards.com StenoKeyboards] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of June 2024): In stock | $100 |}To set up one of these machines with Plover, see the page [[setting up Gemini PR with Plover]]. == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = Keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span> == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. == Known supported keyboards == You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). --> The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! Comments ! Price |- | Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100 |- | Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50 |- | I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP] |- | DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not. | &lt; $30 |- | TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30] |- | K552 | Redragon | NKRO over USB | [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35] |- | X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40] |- | ZM-K600S | Zalman | NKRO over USB | [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40] |- | K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50] |- | K66 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55] |- | K63 | Corsair | NKRO over USB (Works on Mac!) | [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80] |- | K68 | Corsair | NKRO over USB | $160-200 |- | K95 | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200] |- | KG901 | Marvo | NKRO over USB | $30-70 AUD |- | STRAFE | Corsair | NKRO over USB | [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80] |- | CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn’t work on Mac) | [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85] |- | Vengeance K65 | Corsair | NKRO over USB | [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90] |- | C413 Carbon | Logitech | 26KRO | [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90] |- | Francium Pro | Deck | NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO). | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94] |- | Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95] |- | Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100] |- | Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [https://www.amazon.com/dp/B076XDTLBB $120] |- | G710+ | Logitech | NKRO over USB | [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130] |- | Majestouch-2 | Filco | NKRO over USB | [https://amzn.to/oLy2xQ $167] |- | Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169] |- | Apex M800 | SteelSeries | NKRO over USB | [https://steelseries.com/gaming-keyboards/apex-m800 $199] |- | Ergo Pro | Matias | NKRO over USB | [https://matias.ca/ergopro/pc/ $200] |- | Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250] |- | Ergodox | Ergodox | NKRO over USB | [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00] |- | Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+] |- | Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195] |- | Model01 | Keyboard.io | NKRO over USB | [https://shop.keyboard.io $329] |- | Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139] |}<span id="which-type-of-key-switch-should-i-choose"></span> === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Laptops with NKRO == If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible. {| class="wikitable sortable" |- ! Model ! Screen Size ! Manufacturer ! Rollover ! Price (USD) ! Weight |- | [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4] | 13”, 15”, 17” | Dell | n-key | '''$1000''' to $3000 | 5.8 to 9.8 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553] | 15” | Asus | 30-key | $1200 | 5.5 lbs |- | [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen] | 13” | Razer | 14-key | $1200+ | '''2.98 lbs''' |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501] | 15” | Asus | 30-key | $1500 to $2200 | 5.5lbs |- | [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X] | 17” | HP | n-key* | $1800 | 10.7 lbs |- | [https://www.gigabyte.com/Laptop/P57X-v7 P57X] | 17” | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |- | [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502] | 15” | Asus | 30-key | $1900 | 4.9 lbs |- | [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x] | 15” | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |- | [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920] | 17” | Lenovo | 100-key* | $2200 | 10.1 lbs |- | [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501] | 15” | Asus | 30-key | $2500 | 4.85lbs |- | Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8] | 15”, 17” | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |- | [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700] | 15” | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |} <code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span> == Laptops that don’t actually work with Plover == After testing some of the laptops on the list above, they were found to not live up to their claims. {| class="wikitable" |- ! Model ! Manufacturer ! Claimed Rollover ! Findings |- | HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17] | HP | “26-key rollover anti-ghosting” | Combination “YUHJ” on Qwerty only produces 3 letters |- | [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72] | MSI | “anti-ghosting for up to 45 keys” | 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |} = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] 557a386c9d4bcc54107d3acb8a95fc0689d8e039 2209 2196 2024-06-23T20:44:15Z Fieldchicken 1656 slight clean-up of hardware page wikitext text/x-wiki = What steno keyboard should I get? = Generally, any keyboard which is in stock! If you need to use steno on a device that you can't install Plover on, any keyboard which takes [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. Other than that, this page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine]] # [[Supported Hardware#Stenotype Machines|Stenotype machine]] # [[Supported Hardware#Keyboards|Standard computer keyboard]] # [[Supported Hardware#Video Game Controller|Video game controller]] == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. <!-- Group by brand (alphabetical), out of stock at bottom --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these machines with Plover, see the page [[setting up Gemini PR with Plover]]. <span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = NKRO keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). === What’s NKRO? === NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. === How do I know if my keyboard has NKRO? === In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website. === What if my keyboard is not capable of NKRO? === If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] cbaab35554949a83fb50a980aba939cda8ac703a 2210 2209 2024-06-23T20:46:48Z Aerick 9 /* Known supported stenotypes */ wikitext text/x-wiki = What steno keyboard should I get? = Generally, any keyboard which is in stock! If you need to use steno on a device that you can't install Plover on, any keyboard which takes [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. Other than that, this page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine]] # [[Supported Hardware#Stenotype Machines|Stenotype machine]] # [[Supported Hardware#Keyboards|Standard computer keyboard]] # [[Supported Hardware#Video Game Controller|Video game controller]] == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. <!-- Group by brand (alphabetical), out of stock at bottom --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these machines with Plover, see the page [[setting up Gemini PR with Plover]]. <span id="stenotype-machines"></span> = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |}<span id="keyboards"></span> = NKRO keyboards = If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO). === What’s NKRO? === NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. === How do I know if my keyboard has NKRO? === In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website. === What if my keyboard is not capable of NKRO? === If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information. = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] c43b1a6f47e1fba7dbe0d6e89a79418a94f55b73 2212 2210 2024-06-23T21:18:05Z Aerick 9 /* NKRO keyboards */ wikitext text/x-wiki = What steno keyboard should I get? = Generally, any keyboard which is in stock! If you need to use steno on a device that you can't install Plover on, any keyboard which takes [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. Other than that, this page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine]] # [[Supported Hardware#Stenotype Machines|Stenotype machine]] # [[Supported Hardware#Keyboards|Standard computer keyboard]] # [[Supported Hardware#Video Game Controller|Video game controller]] == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. <!-- Group by brand (alphabetical), out of stock at bottom --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these machines with Plover, see the page [[setting up Gemini PR with Plover]]. = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = NKRO keyboards = See: [[Using an NKRO keyboard with Plover]] = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. See: [[Setting up a video game controller with Plover]] <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] a70407344c40efd4faf2ffc5bfc18a73595308de 2213 2212 2024-06-23T21:19:05Z Aerick 9 /* NKRO keyboards */ wikitext text/x-wiki = What steno keyboard should I get? = Generally, any keyboard which is in stock! If you need to use steno on a device that you can't install Plover on, any keyboard which takes [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. Other than that, this page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine]] # [[Supported Hardware#Stenotype Machines|Stenotype machine]] # [[Supported Hardware#Keyboards|Standard computer keyboard]] # [[Supported Hardware#Video Game Controller|Video game controller]] == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. <!-- Group by brand (alphabetical), out of stock at bottom --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these machines with Plover, see the page [[setting up Gemini PR with Plover]]. = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = See: [[Using a standard keyboard with Plover|Using an standard keyboard with Plover]] = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. See: [[Setting up a video game controller with Plover]] <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] 9f34875791a4c92fae054be3ed916e16d2e1be0f 2214 2213 2024-06-23T21:19:14Z Aerick 9 /* Standard keyboards */ wikitext text/x-wiki = What steno keyboard should I get? = Generally, any keyboard which is in stock! If you need to use steno on a device that you can't install Plover on, any keyboard which takes [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. Other than that, this page lists the machines known to work with Plover. The main 4 choices are: # [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine]] # [[Supported Hardware#Stenotype Machines|Stenotype machine]] # [[Supported Hardware#Keyboards|Standard computer keyboard]] # [[Supported Hardware#Video Game Controller|Video game controller]] == Commercially Available Hobbyist Machines == Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. <!-- Group by brand (alphabetical), out of stock at bottom --> {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these machines with Plover, see the page [[setting up Gemini PR with Plover]]. = Stenotype Machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = See: [[Using a standard keyboard with Plover]] = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. See: [[Setting up a video game controller with Plover]] <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] [[Category:Plover]] b592c3215a9e4ef744869dc2e7132571eaf49bb5 2216 2214 2024-06-23T21:40:28Z Aerick 9 /* What steno keyboard should I get? */ wikitext text/x-wiki = What steno keyboard should I get? = This page covers the following machines that you can use with Plover: # [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]] # [[Supported Hardware#Stenotype Machines|Stenotype machines]] # [[Supported Hardware#Standard keyboards|Standard computer keyboards]] # [[Supported Hardware#Video game controllers|Video game controllers]] We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist machines|commercially available hobbyist machines]]. They're all really good, and the best one is whichever is in stock! == Commercially available hobbyist machines == <!-- Group by brand (alphabetical), out of stock at bottom --> If you need to use steno on a device that you can't install Plover on, any keyboard compatible with [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these machines with Plover, see the page [[setting up a hobbyist writer with Plover]]. = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]] [[Category:Plover]] 321ce8dbcc241234ec7e75e4dad20fc58a15dfc5 2218 2216 2024-06-23T21:51:58Z Aerick 9 /* Commercially available hobbyist machines */ wikitext text/x-wiki = What steno keyboard should I get? = This page covers the following machines that you can use with Plover: # [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]] # [[Supported Hardware#Stenotype Machines|Stenotype machines]] # [[Supported Hardware#Standard keyboards|Standard computer keyboards]] # [[Supported Hardware#Video game controllers|Video game controllers]] We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist machines|commercially available hobbyist machines]]. They're all really good, and the best one is whichever is in stock! == Commercially available hobbyist machines == <!-- Group by brand (alphabetical), out of stock at bottom --> If you need to use steno on a device that you can't install Plover on, any keyboard compatible with [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these machines with Plover, see [[setting up a hobbyist writer with Plover]]. See also: [[out of production machines]]. = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]] [[Category:Plover]] 8ec24f618069822762eb82c91aa3134379ba6663 2227 2218 2024-06-23T22:12:30Z Aerick 9 /* Commercially available hobbyist machines */ wikitext text/x-wiki = What steno keyboard should I get? = This page covers the following machines that you can use with Plover: # [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]] # [[Supported Hardware#Stenotype Machines|Stenotype machines]] # [[Supported Hardware#Standard keyboards|Standard computer keyboards]] # [[Supported Hardware#Video game controllers|Video game controllers]] We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist machines|commercially available hobbyist machines]]. They're all really good, and the best one is whichever is in stock! == Commercially available hobbyist writers == <!-- Group by brand (alphabetical), out of stock at bottom --> If you need to use steno on a device that you can't install Plover on, any keyboard compatible with [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these machines with Plover, see [[setting up a hobbyist writer with Plover]]. See also: [[out of production machines]]. = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]] [[Category:Plover]] 2cb41c4fcffe64ce0a8f4bd7dac4d68e2e2baeba Plugins 0 45 2184 2141 2024-06-23T16:07:15Z Aerick 9 Removed screenshots, added annotated video for plugins manager. wikitext text/x-wiki Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0. == How to Install Plugins == === Via the built-in Plugins Manager (recommended) === # Open the main window of Plover. #* You can also right click on the Plover icon. # Go to <code>Tools → Plugins Manager</code>. # Browse the available plugins and select the one you want to install. # Select <code>Install/Update</code> to install the plugin. # Press <code>Yes</code> to the security warning. # Once the plugin has finished installing, close the progress window. # Press the restart button. # Some plugins require extra setup. See [[Plugins#Types of Plugins (For Users)|types of plugins for more detail.]] <youtube>mQHPlGcMHEw</youtube> <blockquote>{{Info|text=If you do not see the plugins manager, follow the instructions [https://plover.wiki/index.php/Troubleshooting_Issues#Disappearing_plugins_manager here] to bring it back.}}</blockquote> === Manually Installing Plugins === Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.''' ==== Find the plugin on PyPI or as a git repo ==== ===== Plugins on PyPI ===== [[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]] [https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>). ===== Plugins not on PyPI ===== If the plugin is not listed on PyPI follow these steps: # Take note of the URL of the git repository. #* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>. #* Copy this to your clipboard. # [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]. #* You may need to restart after installing git. # Verify git is working. #* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS). #* Type <code>git</code> and press enter. You should see something the following output: [[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]] If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows). ==== Install the plugin ==== Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string: * For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>). * For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>). ===== Linux ===== Open a terminal in the same folder as the Plover AppImage and run the following command: <code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code> Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest. <youtube>ftTCQNUdFN0</youtube> ===== Mac ===== Open a terminal and run: <code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code> ===== Windows ===== First open a PowerShell window by following these steps: # Right click the Plover app. # Select <kbd><samp><code>Open file location</code></samp></kbd>. # In the folder, hold down the Shift key and right click. # Select <kbd><samp><code>Open PowerShell window here</code></samp></kbd>. Run the following command: <code>.\plover_console.exe -s plover_plugins install plugin-name</code> See the following video for the whole process: <youtube>Rl2R-ucrpjs</youtube> '''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.''' == Types of Plugins (For Users) == === Dictionary Plugins === Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Machine Plugins === Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards. '''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.''' === System Plugins === System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean). '''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].''' === Command Plugins === Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. '''See the plugin's own documentation for setup details.''' === Macro and Meta Plugins === Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output. '''To use macro and meta plugins, see the plugin's own documentation for setting up entries.''' === GUI Plugins === GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu. '''There is no setup required for these plugins beyond installation and restarting Plover.''' === Extension Plugins === Extension plugins can be used to execute arbitrary code. '''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].''' == Plugin Development == Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful. {{Out of date-section|2024-04-28T12:42:49.972649}} == How Plugins Work == Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle. Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more. == Types of Plugins (For Developers) == The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information. Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release. '''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins''' === plover.command === Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that. Examples: * [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands] * [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher] ==== API ==== The following would be for a new command called "example_command". <code>setup.cfg</code>: ... [options.entry_points] plover.command = example_command = plover_example_command.command:example ... <code>plover_example_command/command.py</code>: ... def example(engine: plover.engine.StenoEngine, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Dictionary format: { "S-": "{PLOVER:EXAMPLE_COMMAND:argument}", "T-": "{PLOVER:EXAMPLE_COMMAND}" } === plover.dictionary === Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries. Examples: * [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary] * [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary] * [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary] ==== API ==== The following would be for a new dictionary file format with a file extension of ".abc". <code>setup.cfg</code>: ... [options.entry_points] plover.dictionary = abc = plover_example_dictionary.dictionary:ExampleDictionary ... <code>plover_example_dictionary/dictionary.py</code>: from plover.steno_dictionary import StenoDictionary class ExampleDictionary(StenoDictionary): # The basics are that _load is called during initialization to pull your dictionary # file format into memory and _save is called after an edit for you to implement # saving to your dictionary file format. If you are not relying on the typical way # StenoDictionary stores entries in memory as part of your _load implementation, # such as what plover_python_dictionary does, you may need to re-implement more parts # of the base class like get, while making sure LONGEST_KEY and similar essential state # is set appropriately and maintained. See the base class for details on what is available. def _load(self, filename: str) -> None: # If you are not maintaining your own state format, self.update is usually # called here to add strokes / definitions to the dictionary state. pass def _save(self, filename: str) -> None: pass Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI. === plover.extension === Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well. Examples: * [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup] * [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server] * [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine] * [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track] ==== API ==== <code>setup.cfg</code>: ... [options.entry_points] plover.extension = example_extension = plover_example_extension.main:Main ... <code>plover_example_extension/main.py</code>: class Main: def __init__(self, engine: plover.engine.StenoEngine) -> None: # Called once to initialize an instance which lives until Plover exits. pass def start(self) -> None: # Called to start the extension or when the user enables the extension. # It can be used to start a new thread for example. pass def stop(self) -> None: # Called when Plover exits or the user disables the extension. pass === plover.gui === Plugins of this type are only available when the Qt GUI is being used. ==== plover.gui.qt.machine_option ==== Examples: * [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi] ==== plover.gui.qt.tool ==== Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows. Examples: * [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter] * [https://github.com/morinted/plover_layout_display plover_layout_display] * [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager] * [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder] * [https://github.com/fourshade/spectra_lexer spectra_analyzer] ===== API ===== <code>setup.cfg</code>: ... [options.entry_points] plover.gui.qt.tool = example_tool = plover_example_tool.main:Main ... And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>: from setuptools import setup from plover_build_utils.setup import BuildPy, BuildUi BuildPy.build_dependencies.append("build_ui") BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"] CMDCLASS = { "build_py": BuildPy, "build_ui": BuildUi, } setup(cmdclass=CMDCLASS) Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files. Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>: # Exclude generated UI files. exclude plover_example_tool/*_rc.py exclude plover_example_tool/*_ui.py # Ensure base UI files are included. include plover_example_tool/*.ui recursive-include plover_example_tool/resources * Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>. <code>plover_example_tool/main.py</code>: from plover.gui_qt.tool import Tool from plover.engine import StenoEngine <nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui <nowiki>#</nowiki> file if you are using Qt Designer. class Main(Tool): <nowiki> </nowiki> # This is what the tool will show up as in the UI <nowiki> </nowiki> TITLE = 'Example Tool' <nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use <nowiki> </nowiki> ICON = <nowiki>''</nowiki> <nowiki> </nowiki> # This is an identifier for your tool, just make it unique <nowiki> </nowiki> ROLE = 'example_tool' <nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None: <nowiki> </nowiki> super().__init__(engine) <nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`. All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored. === plover.machine === Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards. Examples: * [https://github.com/morinted/plover-treal plover_treal] * [https://github.com/benoit-pierre/plover_midi plover_midi] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat] * [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr] ==== API ==== Example implementation of a new machine called "Example Machine": <code>setup.cfg</code>: ... [options.entry_points] plover.machine = Example Machine = plover_example_machine.main:ExampleMachine ... <code>plover_example_machine/main.py</code>: from typing import Any, Callable, Dict, Tuple from plover.machine.base import ThreadedStenotypeBase class ExampleMachine(ThreadedStenotypeBase): """This is an example machine.""" # The keys on the machine, separated by whitespace. KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10' def __init__(self, params: Dict[str, Any]) -> None: super().__init__() # Store the parameters for whatever is needed during runtime # if you have any provided by or stored in the config self._params = params def run(self) -> None: self._ready() # You can loop over self.finished.is_set() instead of waiting for a 1 second timeout # or have any other condition here, but this will be the main place to listen to # your machine input and construct / notify about stroke input while not self.finished.wait(1): self._notify(self.keymap.keys_to_actions(['1'])) def start_capture(self) -> None: """Begin listening for output from the machine.""" # The super class implementation by default starts the `run` method in a new thread. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().start_capture() def stop_capture(self) -> None: """Stop listening for output from the machine.""" # The super class implementation by default sets the `self.finished` `threading.Event` object # then waits for the thread to finish. The `run` method must stop when the event is set. # You likely don't need to write this function when sub-classing `ThreadedStenotypeBase` super().stop_capture() @classmethod def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]: """Get the default options for this machine.""" # Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value. # The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by # manually editing the relevant section in `plover.cfg`. return { 'option 1': ('default for option 1', str), 'option 2': ('default for option 2', str), } ... There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>. The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred. There are 3 ways to configure the keymap: * Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable). * The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type * Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example] The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs. === plover.macro === Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle] ==== API ==== The following would be for a new macro called "example_macro". setup.cfg: ... [options.entry_points] plover.macro = example_macro = plover_example_macro.macro:example ... plover_example_macro/macro.py: def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>. Dictionary format: { "S-": "=example_macro:argument", "T-": "=example_macro" } === plover.meta === Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process. '''TODO: Probably improve the description of the use cases here, especially meta vs. macro.''' Examples: * [https://github.com/morinted/plover_merge_words plover_merge_words] * [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes] * [https://github.com/nsmarkop/plover_last_translation plover_last_translation] * [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform] ==== API ==== The following would be for a new meta called "example_meta". setup.cfg: ... [options.entry_points] plover.meta = example_meta = plover_example_meta.meta:example ... plover_example_meta/meta.py: def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action: ... The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>. You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods. Dictionary format: { "S-": "{:example_meta:argument}", "T-": "{:example_meta}" } === plover.system === System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu. Examples: * [https://github.com/nsmarkop/plover_midi4text plover_midi4text] * [https://github.com/morinted/plover_palantype plover_palantype] * [https://github.com/benoit-pierre/plover_michela plover_michela] * [https://github.com/nsmarkop/plover_korean plover_korean] ==== API ==== The following would be for a new system called "Example System". setup.cfg: ... [options] include_package_data = True ... [options.entry_points] plover.system = Example System = plover_example_system.system ... MANIFEST.in: include plover_example_system/dictionaries/* Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin. plover_example_system/system.py: ... <nowiki>#</nowiki> The keys in your system, defined in steno order KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z') <nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D') <nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding <nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English SUFFIX_KEYS: Tuple[str, ...] = ('-Z',) <nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English NUMBER_KEY: Optional[str] = None <nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English <nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-' NUMBERS: Dict[str, str] = {} <nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0, <nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been <nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke: <nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki> UNDO_STROKE_STENO: str = '*' <nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English <nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally') ORTHOGRAPHY_RULES: List[Tuple[str, str]] = [] <nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list <nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes <nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same. <nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible' ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {} <nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity <nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list <nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly. <nowiki>#</nowiki> The format of a line in the file is: <nowiki>#</nowiki> word number <nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the <nowiki>#</nowiki> number, the higher the priority. <nowiki>#</nowiki> Plover will look for this file in the following directories: <nowiki>#</nowiki> - the configuration directory (so a user can override the word list) <nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`) ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt' <nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys. <nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that <nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = { <nowiki> </nowiki> 'Keyboard': { <nowiki> </nowiki> 'S-' : ('a', 'q'), <nowiki> </nowiki> 'T-' : 'w', <nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'), <nowiki> </nowiki> '-D' : '[', <nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>, <nowiki> </nowiki> 'arpeggiate': 'space', <nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes <nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'), <nowiki> </nowiki> }, } <nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but <nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different) DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries' <nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries. <nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here. <nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should <nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing <nowiki>#</nowiki> support for the dictionary format you are using <nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries <nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover <nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example <nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out <nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made <nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is <nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover DEFAULT_DICTIONARIES: Tuple[str, ...] = ( <nowiki> </nowiki> 'plover_example_system_other_stuff.json', <nowiki> </nowiki> 'plover_example_system_main.json', ) Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward. Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian. == Development Workflow == === Starting Development === '''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)''' <nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code> === Testing === While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect. If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment: plover -s plover_plugins install -e /path/to/plugin/directory On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>. If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using: pip install -e /path/to/plugin/directory === Publishing === Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it. Those guidelines up front: * Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces * Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI * Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here. * Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward. There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so: python setup.py sdist bdist_wheel twine upload dist/* See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads. If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same. === Adding the package to the Plover plugins registry === Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list. [[Category:Plover]] 48868ccb9dd6323f0cbac93030d085f53d540a77 Configuration 0 61 2185 234 2024-06-23T16:27:38Z Aerick 9 add note on theming wikitext text/x-wiki This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI): [[File:Configure Menu Location.png|frameless|350x350px]] == Interface Tab == {| class="wikitable" |+ |'''Start minimized''' |Determines whether Plover is minimized or opened when the application starts. |- |'''Show paper tape''' |Determines whether Plover's paper tape window is open when the application starts. |- |'''Show suggestions''' |Determines whether Plover's suggestions window is open when the application starts. |- |'''Add translation dialog opacity''' |Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent. |- |'''Dictionaries display order''' |Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up. |} == Logging Tab == {| class="wikitable" |+ |'''Log file''' |Sets the file path and file name of your log file. Click the '''Browse''' button to set a path in your OS file browser. |- |'''Log strokes''' |Determines whether Plover logs your strokes to your log file |- |'''Log translations''' |Determines whether Plover logs your translations to your log file |} == Machine Tab == The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options. === Machine: Keyboard === [[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]] '''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling. ==== Remapping Keys to Different Actions ==== The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.) The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled. ==== Disabling Keyboard Keys ==== Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for &quot;no operation&quot;) which will disable that key while Plover is running. [[File:Machine configuration window.png|frameless|747x747px]] ''The escape key will be disabled while Plover's output is enabled with the configuration above, where the &quot;Escape&quot; key has been mapped to the &quot;no-op&quot; Action.'' === Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura === ==== Options Section ==== ===== Connection ===== Your machine will use a serial connection, which must be configured here. {| class="wikitable" |+ |'''Port''' |The serial port for serial connections. No default value. The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>. |- |'''Scan''' |Click to scan for connected devices |- |'''Baudrate''' |The baud rate for serial connections. 9600 by default. |} ===== Data Format ===== {| class="wikitable" |+ |'''Data bits''' |The number of bits in a byte for serial connections. 8 by default. |- |'''Stop bits''' |The number of stop bits for serial connections. 1 by default. |- |'''Parity''' |The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default. |} ===== Timeout ===== The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds). ==== Flow control ==== '''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default. '''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default. ==== Keymap Section ==== Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>. === Machine: Treal === ==== Keymap section ==== Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>. == Output Tab == {| class="wikitable" |+ |'''Enable at start''' |Determines whether Plover will start at system boot |- |'''Start attached''' |Determines whether Plover will start without a starting space |- |'''Start capitalized''' |Determines whether Plover will start with the first letter capitalized |- |'''Space placement''' |Determines whether spaces are prepended to your translations with '''Before Output''' or appended to your translations with '''After Output''' |- |'''Undo levels''' |Determines how many strokes can be undone with <code>*</code> |- |'''Key press delay (ms)''' |Determines how many milliseconds Plover will wait before outputting the translation of your strokes |} == Plugins Tab == Some plugins, such as <code>plover_clippy</code>or <code>plover_tapey_tape</code>will have configurations specific to the plugin here. == System Tab == Allows the user to switch to another stenography system. == Theming/Dark Mode == Plover supports using Qt Style Sheets file for custom theming. Premade QSS files can be found by: * Searching on sites like https://qss-stock.devsecstudio.com/. * [[QSS files for Plover|Browsing community made QSS files specifically for Plover]] (instructions also included in this page). fe62bacb2d233f9f08519f4731b6888fa0617b64 File:Aerick's Adwaita Dark Windows.png 6 1500 2186 2024-06-23T16:32:22Z Aerick 9 wikitext text/x-wiki Aerick's Adwaita Dark QSS theme on Windows 07814a0077f99a41da74c43c8f026a38b30e8a17 File:Aerick's Adwaita Dark theme on GNOME..png 6 1501 2187 2024-06-23T16:33:12Z Aerick 9 wikitext text/x-wiki Aerick's Adwaita Dark theme on GNOME. 72ad419b51e4eea809ce842f97ab864056d31570 Theming Plover with QSS 0 1502 2188 2024-06-23T16:34:24Z Aerick 9 Created page with "== Usage == Plover can be themed arbitrarily using Qt Style Sheets. To use a QSS file, follow these instructions: # Download the QSS file and name it <code>plover.qss</code>. # In Plover's main window, go to <code>File → Open Config Folder</code>. # Move the <code>plover.qss</code> file into this folder. # Restart Plover. == Community made QSS themes == === [https://gist.github.com/aerickt/04a56b23623afed376db38a6ca64388e Aerick's Adwaita Dark] === File:Aerick's A..." wikitext text/x-wiki == Usage == Plover can be themed arbitrarily using Qt Style Sheets. To use a QSS file, follow these instructions: # Download the QSS file and name it <code>plover.qss</code>. # In Plover's main window, go to <code>File → Open Config Folder</code>. # Move the <code>plover.qss</code> file into this folder. # Restart Plover. == Community made QSS themes == === [https://gist.github.com/aerickt/04a56b23623afed376db38a6ca64388e Aerick's Adwaita Dark] === [[File:Aerick's Adwaita Dark Windows.png|alt=Aerick's Adwaita Dark theme on Windows 10.|left|frame|Aerick's Adwaita Dark theme on Windows 10.]] [[File:Aerick's Adwaita Dark theme on GNOME..png|alt=Aerick's Adwaita Dark theme on GNOME.|thumb|478x478px|Aerick's Adwaita Dark theme on GNOME.]] 87cf0d0ca7ba89942dd4cb0c7fa7fe492869718a Installation Guide 0 8 2189 2172 2024-06-23T16:43:14Z Aerick 9 /* Install Plover on Linux */ wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. #* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info). # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. <!--T:12--> {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. This includes systems like Ubuntu and Fedora. Either [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS switch to X11] or use the [https://github.com/LilleAila/plover-uinput plover-uinput] plugin. See the [https://plover.wiki/index.php/Plover-uinput plover-uinput wiki] page for detailed setup instructions.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == <!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).''' === Error relating to xcb === <!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == <!--T:27--> <!--T:28--> Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> 83c755dabf25b232e2d71c66c149bbc9dbd9e4e9 2190 2189 2024-06-23T16:44:19Z Aerick 9 Reverted edits by [[Special:Contributions/Aerick|Aerick]] ([[User talk:Aerick|talk]]) to last revision by [[User:Neu neutral|Neu neutral]] wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> {{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}} <!--T:7--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. <!--T:12--> {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == <!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span> === Error relating to xcb === <!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == <!--T:27--> <!--T:28--> Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> 58ffc3ef18fbe0eaf2bd169aa175448687da0006 2191 2190 2024-06-23T16:45:13Z Aerick 9 Undo revision [[Special:Diff/2190|2190]] by [[Special:Contributions/Aerick|Aerick]] ([[User talk:Aerick|talk]]) wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. #* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info). # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. <!--T:12--> {{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. This includes systems like Ubuntu and Fedora. Either [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS switch to X11] or use the [https://github.com/LilleAila/plover-uinput plover-uinput] plugin. See the [https://plover.wiki/index.php/Plover-uinput plover-uinput wiki] page for detailed setup instructions.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == <!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).''' === Error relating to xcb === <!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == <!--T:27--> <!--T:28--> Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> 83c755dabf25b232e2d71c66c149bbc9dbd9e4e9 Plover-uinput 0 1503 2192 2024-06-23T17:08:12Z Aerick 9 Created page with "== Background == Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups: * Fedora 40 GNOME 46 == Installation and setup == === Plugin installation === The <code>plover-uinput</code> plugin is not in the plugins manager and has to be i..." wikitext text/x-wiki == Background == Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups: * Fedora 40 GNOME 46 == Installation and setup == === Plugin installation === The <code>plover-uinput</code> plugin is not in the plugins manager and has to be installed manually. # Navigate to the folder containing the AppImage. # Run <code>./plover-4.0.0rc2+6.g53c416f-x86_64.AppImage -s plover_plugins install plover-uinput</code>. #* Note that the executable may be different if you're running a different version of Plover, or if you're not using the AppImage. # Restart Plover. # Go to <code>Configure → Plugins</code> and check the box next to <code>plover-uinput</code>. For more detailed installation instructions, see the page on [[Plugins#Linux|manually installing plugins]]. === Post-installation setup === Add your user to the <code>input</code> group with the following command: <code>sudo usermod -aG input $USER</code> Create a file at <code>/etc/udev/rules.d/90-plover-uinput.rules</code> with the following content: <code>KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"</code> For full Unicode support (emoji, accented letters, etc), install <code>ibus</code> or <code>fcitx5</code>. {{Info|text=Distributions running GNOME already have <code>ibus</code> installed.}} '''After setup has been complete, restart your computer to ensure the changes take effect.''' == Troubleshooting == === Verify <code>ibus</code> is working === # On a regular keyboard, press <code>Ctrl+Shift+U</code>. # You should see an underlined <u>u</u> appear. # Type <code>1f990</code> and press enter. # You should see 🦐 appear. 03a78b83b3f1893448630473fd39eed5aadf9ea6 Troubleshooting issues 0 14 2193 2143 2024-06-23T17:15:00Z Aerick 9 /* Plugins not showing in the plugins manager: fix link */ wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate. === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == ===Disappearing plugins manager=== When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing. # In the toolbar, select <code>File → Open Config Folder</code> # Delete the <code>Plugins</code> folder # Uninstall and reinstall Plover ===Plugins not showing in the plugins manager=== Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually Installing Plugins|manually Installing Plugins]]. == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == === No output despite keys showing up in the paper tape === # Enable Plover's output. # Open the paper tape and press some keys. #* If nothing shows up, you will first need to [[Supported Hardware#Setting Up a Hobbyist Machine With Plover|set up your machine]]. #* If you see letters showing in the paper tape, follow the rest of these instructions. # Open <code>System Settings &#x3E; Privacy & Security &#x3E; Accessibility</code>. #* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!''' # Add the <code>Plover</code> app with the <code>+</code> button. === Incompatibility with Karabiner Elements === Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover. === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == === Missing or jumbled output === IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>. [[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]] === Linux dynamic keyboard layout switching is not working === Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298]. === Delayed/slow output when using gnome-shell and the keyboard machine === It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. === Plover not working on Wayland === Plover does not officially support Wayland. This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success. The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager. 67b4a901ee129594f519484cb9b4e99529bef105 2198 2193 2024-06-23T19:52:54Z Aerick 9 /* No output despite keys showing up in the paper tape */ wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate. === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == ===Disappearing plugins manager=== When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing. # In the toolbar, select <code>File → Open Config Folder</code> # Delete the <code>Plugins</code> folder # Uninstall and reinstall Plover ===Plugins not showing in the plugins manager=== Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually Installing Plugins|manually Installing Plugins]]. == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == === No output despite keys showing up in the paper tape === # Enable Plover's output. # Open the paper tape and press some keys. #* If nothing shows up, you will first need to set up your machine. #* If you see letters showing in the paper tape, follow the rest of these instructions. # Open <code>System Settings &#x3E; Privacy & Security &#x3E; Accessibility</code>. #* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!''' # Add the <code>Plover</code> app with the <code>+</code> button. === Incompatibility with Karabiner Elements === Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover. === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == === Missing or jumbled output === IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>. [[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]] === Linux dynamic keyboard layout switching is not working === Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298]. === Delayed/slow output when using gnome-shell and the keyboard machine === It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. === Plover not working on Wayland === Plover does not officially support Wayland. This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success. The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager. 5fd10047c7592e82dabe9b8b97ffcc9ebeda9d78 Setting up a hobbyist writer with Plover 0 1504 2195 2024-06-23T19:48:54Z Aerick 9 Created page with "== Background == Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time. == Video summary == The following narrated video goes over the main method..." wikitext text/x-wiki == Background == Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time. == Video summary == The following narrated video goes over the main method and trial and error method described below: <youtube>2tp_hSVCKN8</youtube> == Main method == This method involves determining the serial port for Plover to listen to. # In Plover's main window, go to <code>Configure → Machine</code> and change the machine to Gemini PR. # With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button. #* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]] # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Open the <code>Port</code> drop down menu. #* If you see your device name show up, select it. #* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]] # Press <code>Apply</code> and <code>OK</code> # Test that your machine is working #* Open the paper tape (<code>Tools → Paper tape</code>) #* Press some keys on your machine #* Verify that they show up in the paper tape == Trial and error method == Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try. # In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Select the first option in the <code>Port</code> drop down menu. # Press <code>Apply</code> and <code>OK</code> # Open the paper tape and press some keys on your machine. #* If you see output in the paper tape, you are done. #* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu. == Serial protocol limitations == If you sleep and wake up your computer, or you unplug and replug your machine, your steno keyboard will disconnect. You can try pressing the <code>Reconnect Machine</code> button. [[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]] If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again. === Autoreconnect === On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. For more details, see the [[auto reconnect]] page. 256ea357239abbc0edaf1e682020be5b15172367 2199 2195 2024-06-23T20:14:38Z Aerick 9 Aerick moved page [[Setting up Gemini PR with Plover]] to [[Setting up a hobbyist writer with Plover]] wikitext text/x-wiki == Background == Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time. == Video summary == The following narrated video goes over the main method and trial and error method described below: <youtube>2tp_hSVCKN8</youtube> == Main method == This method involves determining the serial port for Plover to listen to. # In Plover's main window, go to <code>Configure → Machine</code> and change the machine to Gemini PR. # With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button. #* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]] # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Open the <code>Port</code> drop down menu. #* If you see your device name show up, select it. #* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]] # Press <code>Apply</code> and <code>OK</code> # Test that your machine is working #* Open the paper tape (<code>Tools → Paper tape</code>) #* Press some keys on your machine #* Verify that they show up in the paper tape == Trial and error method == Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try. # In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Select the first option in the <code>Port</code> drop down menu. # Press <code>Apply</code> and <code>OK</code> # Open the paper tape and press some keys on your machine. #* If you see output in the paper tape, you are done. #* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu. == Serial protocol limitations == If you sleep and wake up your computer, or you unplug and replug your machine, your steno keyboard will disconnect. You can try pressing the <code>Reconnect Machine</code> button. [[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]] If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again. === Autoreconnect === On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. For more details, see the [[auto reconnect]] page. 256ea357239abbc0edaf1e682020be5b15172367 Beginner's Guide 0 4 2197 2159 2024-06-23T19:51:59Z Aerick 9 /* Update set up link */ wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time. <!--T:18--> See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]] <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|thumb|center]] <!--T:20--> <span id="rolling-your-strokes"></span> ==== Roll your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> See below for a demonstration of rolling: [[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]] <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See the [[Supported Hardware]] page for a [https://plover.wiki/index.php/Supported_Hardware#Known_supported_keyboards list of supported keyboards]. * See also: [https://plover.wiki/index.php/Supported_Hardware#Which_type_of_key_switch_should_I_choose? Which type of key switch should I choose?] <!--T:31--> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === <!--T:32--> Most keyboards have their keys arranged in staggered rows. This makes it difficult to press two keys in a column with a single finger. If you have a mechanical keyboard, flipping the top row of key caps can help make this a little more comfortable. [[File:Mech keyboard with top row flipped.png|alt=Mech keyboard with top row flipped|center|thumb|637x637px|Flipping the top row of key caps can make a mechanical keyboard easier to steno on.]] You can also use [[Supported Hardware#Keytoppers|keytoppers]], or print some custom [[Supported Hardware#Keycaps|keycaps]] if you have a 3D printer. Keyboards with ortholinear layouts (a grid arrangement of keys) can also be [[Supported Hardware#NKRO keyboards with an ortholinear layout|adapted for use with Plover]]. <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling machines designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [https://plover.wiki/index.php/Supported_Hardware#Dedicated_machines_designed_for_use_with_Plover Dedicated machines designed for use with Plover]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine. * [[Supported Hardware#Stenotype Machines|Setting up a professional steno machine with Plover]]. * [[Setting up Gemini PR with Plover|Setting up a hobbyist steno keyboard with Plover]].<!--T:45--> === Enable Plover === Once you have set up your machine with Plover <!--T:46--> # Run Plover. # In the main window of Plover, set <code>Output</code> to <code>Enabled</code> <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below: <!--T:50--> <br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so: [[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]] If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] . * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling your strokes or arpeggiating. <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:79--> <span id="personalizing-your-dictionary></span> == Personalizing your dictionary == <!--T:80--> English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes. <!--T:81--> English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things. <!--T:82--> For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else. <!--T:83--> When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write. More information: [[Personalizing your dictionary]]. <!--T:78--> [[Category:Plover]] </translate> d2e73d1a81f694538a7ffc6f958fe4ea238078d8 2226 2197 2024-06-23T22:07:54Z Aerick 9 /* Confirm it’s working */ wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time. <!--T:18--> See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]] <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|thumb|center]] <!--T:20--> <span id="rolling-your-strokes"></span> ==== Roll your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> See below for a demonstration of rolling: [[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]] <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See the [[Supported Hardware]] page for a [https://plover.wiki/index.php/Supported_Hardware#Known_supported_keyboards list of supported keyboards]. * See also: [https://plover.wiki/index.php/Supported_Hardware#Which_type_of_key_switch_should_I_choose? Which type of key switch should I choose?] <!--T:31--> <span id="adapt-a-keyboard-for-steno-use"></span> === Adapt a keyboard for steno use === <!--T:32--> Most keyboards have their keys arranged in staggered rows. This makes it difficult to press two keys in a column with a single finger. If you have a mechanical keyboard, flipping the top row of key caps can help make this a little more comfortable. [[File:Mech keyboard with top row flipped.png|alt=Mech keyboard with top row flipped|center|thumb|637x637px|Flipping the top row of key caps can make a mechanical keyboard easier to steno on.]] You can also use [[Supported Hardware#Keytoppers|keytoppers]], or print some custom [[Supported Hardware#Keycaps|keycaps]] if you have a 3D printer. Keyboards with ortholinear layouts (a grid arrangement of keys) can also be [[Supported Hardware#NKRO keyboards with an ortholinear layout|adapted for use with Plover]]. <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling machines designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [https://plover.wiki/index.php/Supported_Hardware#Dedicated_machines_designed_for_use_with_Plover Dedicated machines designed for use with Plover]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]]. <!--T:45--> === Enable Plover === Once you have set up your machine with Plover <!--T:46--> # Run Plover. # In the main window of Plover, set <code>Output</code> to <code>Enabled</code> <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below: <!--T:50--> <br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so: [[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]] If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] . * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling your strokes or arpeggiating. <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:79--> <span id="personalizing-your-dictionary></span> == Personalizing your dictionary == <!--T:80--> English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes. <!--T:81--> English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things. <!--T:82--> For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else. <!--T:83--> When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write. More information: [[Personalizing your dictionary]]. <!--T:78--> [[Category:Plover]] </translate> 3f49ad5ffe00a34db7165ce1a4e54bf01e658ed3 2228 2226 2024-06-23T22:12:33Z Aerick 9 wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time. <!--T:18--> See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]] <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|thumb|center]] <!--T:20--> <span id="rolling-your-strokes"></span> ==== Roll your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> See below for a demonstration of rolling: [[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]] <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> We only recommend purchasing an NKRO keyboard if you cannot purchase a dedicated hobbyist writer. NKRO keyboards are less expensive, and also can be used as regular keyboards if you change your mind and decide not to learn steno. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See: [[using a standard keyboard with Plover]] <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling writers designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]]. <!--T:45--> === Enable Plover === Once you have set up your machine with Plover <!--T:46--> # Run Plover. # In the main window of Plover, set <code>Output</code> to <code>Enabled</code> <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below: <!--T:50--> <br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so: [[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]] If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] . * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling your strokes or arpeggiating. <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:79--> <span id="personalizing-your-dictionary></span> == Personalizing your dictionary == <!--T:80--> English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes. <!--T:81--> English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things. <!--T:82--> For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else. <!--T:83--> When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write. More information: [[Personalizing your dictionary]]. <!--T:78--> [[Category:Plover]] </translate> 654222e09d3ba7188b5fbfcb9f8a570608d59225 2229 2228 2024-06-23T22:14:42Z Aerick 9 /* Use the correct body posture and finger placement */ wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time. <!--T:18--> See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]] <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|thumb|center]] <!--T:20--> <span id="rolling-your-strokes"></span> ==== Roll your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> See below for a demonstration of rolling: [[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]] <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> We only recommend purchasing an NKRO keyboard if you cannot purchase a dedicated hobbyist writer. NKRO keyboards are less expensive, and also can be used as regular keyboards if you change your mind and decide not to learn steno. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See: [[using a standard keyboard with Plover]] <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling writers designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]]. <!--T:45--> === Enable Plover === Once you have set up your machine with Plover <!--T:46--> # Run Plover. # In the main window of Plover, set <code>Output</code> to <code>Enabled</code> <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below: <!--T:50--> <br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so: [[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]] If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] . * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling your strokes or arpeggiating. <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> [[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]] <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:79--> <span id="personalizing-your-dictionary></span> == Personalizing your dictionary == <!--T:80--> English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes. <!--T:81--> English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things. <!--T:82--> For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else. <!--T:83--> When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write. More information: [[Personalizing your dictionary]]. <!--T:78--> [[Category:Plover]] </translate> bbaef1bd21036f965ca8ffef15ed32903a34e846 Setting up a Stentura 400SRT with Plover 0 22 2201 68 2024-06-23T20:18:57Z Aerick 9 Aerick moved page [[How to setup and use Plover with a Stentura 400SRT]] to [[Setting up a Stentura 400SRT with Plover]] wikitext text/x-wiki <markdown> ## What you need 1. Stentura Stenograph machine This was done with a **Stentura 400SRT**, but it should work with others versions (e.g. 200SRT), as long as it is the electric version. 1. A serial cable. There are a couple options here: + **Option 1: Stenograph realtime cable kit** The one that usually comes with the Stentura comes in three parts. A grey connector, a black connector, and a cable. **There's nothing special about this cable**, even though they try to pretend there is. So if you don't already have it, don't spend the amounts of money they are charging to get one. **Use Option 2 instead.** + **Option 2: Any RS232 (Also called DB9) male to female cross over-cable** This is also known as Null Modem. This is a serial cable that will work with the machine. Here are a few options from Amazon: - [StarTech SCNM9FM2MBK](https://www.amazon.com/StarTech-com-RS232-Serial-Female-SCNM9FM2MBK/dp/B00CEMGMMM/) - [Serial Modem Cable Female RS232](https://www.amazon.com/Serial-Modem-Cable-Female-RS232/dp/B0026KE4CM/) - [C2G Female RS322 Adapter](https://www.amazon.com/C2G-Cables-Go-Female-Adapter/dp/B000067RW2/) — No cable, so very short. Useful to minimize the amount of cords - [Cables Online Transfer Adapter](https://www.amazon.com/CablesOnline-Slimline-Transfer-Adapter-AD-N04M-2/dp/B00HGIRU3O/) — Even shorter 1. USB to serial adapter If you intend to connect to a PC serial port directly, you are already all set with the machine and serial cable. If you want to connect via USB, then you'll also need a USB to serial adapter. If you're not sure if you'll need it, then you probably need it. * Serial (Female connector) to USB converter. Once again, here are some options: + [Sabrent Serial RS232 Converter](https://www.amazon.com/Sabrent-Serial-RS-232-Converter-CB-DB9P/dp/B00IDSM6BW/) + [Tera Grand Premium USB to serial adapter](https://www.amazon.com/Tera-Grand-Premium-Adapter-Supports/dp/B00BUZ0K68/) — No cable, so very short + [StarTech DCE Adapter Cable with FTDI Null Modem model](https://www.amazon.com/gp/product/B008634VJY/) - Requires a serial gender changer Most of these USB to serial adapters come with driver files that you have to install before the adapter works. After installing the driver, make sure you reboot your computer or you probably won't be able to connect to your machine. Additionally, if you have a new computer with USB 3.0 ports many drivers will not support it and you can work around this issue by getting a USB 2.0 hub to connect through as a gateway. **It's important that there is a cross-over cable at some point of the connection, and only one. The Stenograph cable has one built in.** If you purchased any of the "option 2" cables, those are also cross-over cables and will work. The terms "RS232" and "DB9" mean the same thing and can be used interchangeably. The same goes for "Cross-over" and "Null Modem" ## Putting it all together If you have a **USB port:** - Computer USB port → USB to serial adapter → serial cross-over cable → steno machine If you have a **serial port** on your computer: - Computer serial port → serial cross-over cable → steno machine ## Connecting to Plover ### Turning on your Stenograph Machine Turn on the Stenograph with the switch on the face plate. The green light indicates that the machine is powered on. The red light signifies connection with a computer. If the red light is blinking, or the green and red are blinking back and forth, don't worry, it'll still work. If you want to stop the blinking, there are some instructions later. ### Configuring Plover Next, we can connect Plover to use the device. In Plover, click **Configure**. In the Configuration window, click **Machine**. In the "machine" dropdown, select **Stentura**. Click the **Scan** button, next to **Port**. This will refresh the Port list. You'll need to find the correct port number. If there is only one, it's probably the one you want. If there is more that one, you can try a few until you find the one that works. If you're using a USB device, it's likely to be the larger number. If you're connecting to the serial port directly, it'll probably be the first one. When using the USB converter, the other settings should stay at the defaults. Which are 9600, 8, N, 1, no flow control. When connecting with a serial port, it is recommended to use a baud rate of 2400. (Note: some users have found that they need to use 2400 as the baud rate even when using a USB converter.) Press `OK` to get out of the Configure menu, until you get back to the main Plover screen. Click the refresh button, and it should say `Stentura: connected`. A successful connection is also indicated by the red light on the Stentura turning on -- it will not come on until Plover connects. If the connection is not established, then something went wrong, try pressing the refresh button in the Plover window and if that doesn't work double check all the steps above. That's it. You should get output when typing. ## Stop the blinking The lights blink when the internal memory is full, or if the battery is drained, or both. if the green light is blinking, then the battery is drained. To charge, leave it plugged in and *turned on*. A good battery will charge in about 8 hours. It's possible that the battery is dead. If you bought the unit second hand and a few years old, then it's very likely to be dead. If that's the case, the light will never stop blinking, no matter how much you try charging it. If you remove the battery, the light will stop blinking and will continue to work with the power cable. The dead battery is useless anyway, so throw it away and now your unit is lighter. (Or buy a new one http://www.stenoworks.com/writer-accessories/writer-batteries/ ) If the red light is blinking, then the internal memory is full or close to full. To clear it: * turn the Stenograph off * while holding STK, turn the machine back on. * the lights should be both blinking back and forth. If not, try again from the start. * press KWR to clear the memory, or TPH if you change your mind. The memory will get full regularly so you'll have to do this occasionally. So remember it! ## Manual Valentin from the [Plover Forums](https://groups.google.com/d/msg/ploversteno/dhLSXsPdGYY/jZQlVdcIAQAJ) has kindly scanned the entire manual. It is very useful to read, and you can get it [here](https://0au.de/~apo/stentura_200_400_srt_manual.pdf). ## Resurrect a dead Stentura 200SRT/400SRT If the electronics in your 200SRT/400SRT aren't working, you may be interested in replacing them altogether with an Arduino controller. The machine will then be powered over USB through the Arduino -- don't plug in its own power supply lest you destroy your Arduino. The electric paper tape advance will not work; if you want paper tape you'll have to put the mechanism in manual mode (see the instructions) which has a slightly heavier touch, but you don't need paper tape for plover. Likewise, it will no longer have the ability to record strokes for later playback when not connected to the computer. It is a pretty simple task requiring soldering 6 wires to the I/O Expander board that is located on top of the steno mechanism, just under the cover that opens. There's a [video](https://youtu.be/ccxri4A-SbM) and an [Arduino sketch](https://github.com/balthamos/steno-arduino). There is a debouncing delay constant in the sketch that may need to be increased if your machine produces multiple outputs in plover for a single stroke. Note: this relies on the electronics on the I/O Expander board still working -- it is a collection of shift register ICs and seems likely to work even if the main electronics board at the bottom of the machine is no longer working. It would be a bigger job to wire the Arduino directly to all 24 switches but it could be done if the I/O Expander electronics did not work. See [this thread](https://groups.google.com/forum/#!topic/ploversteno/l6LDaf855hg) for pictures of a rebuild using a Raspberry Pi that interacts directly with the switches. </markdown> d7cdbef6f2777bf5d885862ccf9c910368b754fe How to setup and use Plover with a Stentura 400SRT 0 1506 2202 2024-06-23T20:18:57Z Aerick 9 Aerick moved page [[How to setup and use Plover with a Stentura 400SRT]] to [[Setting up a Stentura 400SRT with Plover]] wikitext text/x-wiki #REDIRECT [[Setting up a Stentura 400SRT with Plover]] 46ab7b9c6f701baee40dd848ce39259e04700e0d Setting up a Stentura Protege with Plover 0 29 2203 135 2024-06-23T20:19:13Z Aerick 9 Aerick moved page [[Stentura Protege Setup and Usage Instructions]] to [[Setting up a Stentura Protege with Plover]] wikitext text/x-wiki Congratulations on getting a Stentura Protege. This page will show you how to connect it to your computer and setup Plover. [https://imgur.com/vKbiTOJ Photo of my Protege. Note: Mine did not come with the removable name plate.] == What you need == You will need two cables: # '''Data Cable:''' USB to RS-232 DB9 Male Serial Cable. (Make sure the cord has a male serial with 9 pins) * [http://a.co/9KWXIMP Amazon link] # '''Power Cable:''' USB 2.0 Cable - A-Male to B-Male. (The Stentura Protege can be powered either by USB or by a proprietary A/C charger. Your machine may come with a power chord. Mine did not.) * [http://a.co/fQDbqWD Amazon link] Note: Both of those Amazon links are for 6 foot cables. Make sure you get a cord long enough for your setup. To use USB you need to install the <code>plover_stenograph_usb</code> plugin from the plugins manager and if you're on Windows you'll need to install the USB drivers from Stenograph. == Serial Setup == '''Step 1.''' Connect power cord: Connect USB A-to-B cable to Stentura machine and computer or use the AC adapter. Your machine now has power. On the front of your Stentura is a row of 6 grey buttons. Press and hold the 1st one to turn it on. '''Step 2.''' Connect data cord: Connect serial-to-USB cable to Stentura machine and computer. [https://imgur.com/wGc9y4p Photo of both cables connected.] '''Step 3.''' Download the latest version of Plover for your OS. '''Step 4.''' Open Plover. Click the configure button. A new configuration window will open. Click the tab for machine. Select Stentura from the drop down menu. Go back to the window where you clicked the configure button. Click the radio button "enable" to enable output. Click the reload button (arrows going in a circle) until the dot turns green and it says "Stentura: Connected" '''Step 5.''' Thanks to Plover, your Stentura can now type on your computer. Start learning Steno with Plover [https://www.openstenoproject.org/learn-plover/lesson-1-fingers-and-keys.html lessons] and [http://stenoknight.com/plover/haxeploverlearn/ interactive drills]. == Something went wrong == I ran into a problem because I was using an older Serial-to-USB cable and Windows was not able to load the correct Prolific drivers for the cable. I found a solution. [http://www.totalcardiagnostics.com/support/Knowledgebase/Article/View/92/20/prolific-usb-to-serial-fix-official-solution-to-code-10-error This site] explains the problem and gives you a link to download the right drivers. == Stentura Protege Manual == [https://www.stenograph.com/content/files/documents/Stentura%20Protege%20User%20Guide.pdf Link to user guide PDF] == Stop The Beeping == My Stentura Protege did not come with a battery. As long as it has power it runs just fine, but it makes an annoying little beep every minute. This is the low battery beep and it beeps even if you have no battery connected. I searched through the manual and did not see a way to disable this. But, I discovered two approaches to remove the beeping. I will explain how below. I was successful but please try this at your own risk. '''What is making the beep?''' The beep is made by a small little speaker called a Piezo Electric Buzzer (cylinder with hole in it and plus sign). It is soldered to the circuit board and labeled "Alarm." (If you are curious, you can learn more about how these work in this [https://www.youtube.com/watch?v=77h1JhD9Syw video].) '''Opening up the machine''' To see this beeping speaker you have to turn the machine over. Then, remove some screws. There are two sets of different sized screws. Make sure you keep track of which screws go where. (Hint: The smaller screws go with the metal washers. [https://imgur.com/P0RR4dy Photo].) Take the back cover off carefully because the battery wires are still attached to the case. [https://imgur.com/kTWBKbM Photo]. Locate the beeping speaker. It is labeled Alarm on the circuit board. [https://imgur.com/4kgY1kC Photo]. '''Option 1''': Mute the speaker by putting a small bit of tape over the hole next to the plus sign shown in this [https://imgur.com/4kgY1kC photo]. I used masking tape, but you might want to try experimenting with other types of tapes. This will lower the volume a lot and is non-destructive. '''Option 2''': Permanently remove the ability of your stenograph to make sounds. This will destructively remove all capabilities of your machine to make beeping sounds. Make sure you really want to go in this direction before moving forward. If you plan on using this machine with a battery, the low battery beep could be useful. I plan on only using it plugged in and I don't plan on getting a battery. I successfully completed this modification, but please do this at your own risk. The speaker, a Piezo Electric Buzzer makes sound by vibrating a ceramic plate. This can be carefully broken. I used a screw. [https://imgur.com/a/BRrsZ Photo]. Place it into the hole and gently twist. [https://imgur.com/a/mQI5H Photo]. You can plug in the machine again to test if you have successfully disabled the speaker. If you no longer hear the chirp then you have been successful. Alt option: I did not do this, but it should be possible to desolder the Piezo Electric Buzzer from the board. Since I have not done this I can not confirm that this would be without side effects. cde02ae53339ea4adeb57d53a27f79962970c65f Stentura Protege Setup and Usage Instructions 0 1507 2204 2024-06-23T20:19:13Z Aerick 9 Aerick moved page [[Stentura Protege Setup and Usage Instructions]] to [[Setting up a Stentura Protege with Plover]] wikitext text/x-wiki #REDIRECT [[Setting up a Stentura Protege with Plover]] a62d778fd6641103e67d860241cdbea6429d15a8 Setting up your writer with Plover 0 1508 2205 2024-06-23T20:21:34Z Aerick 9 Created page with "Each machine is set up differently with Plover. This page serves as a reference for all the different set up pages and instructions. == Hobbyist writers == All the hobbyist steno writers use the Gemini PR protocol by default: * TinyMod * Nolltronics Ecosteno * Nolltronics Multisteno * StenoKeyboards Asterisk * StenoKeyboards Polyglot * StenoKeyboards Uni * Starboard ==== [[Setting up a hobbyist writer with Plover]] ==== == Stentura Protege == ==== Setting up a Ste..." wikitext text/x-wiki Each machine is set up differently with Plover. This page serves as a reference for all the different set up pages and instructions. == Hobbyist writers == All the hobbyist steno writers use the Gemini PR protocol by default: * TinyMod * Nolltronics Ecosteno * Nolltronics Multisteno * StenoKeyboards Asterisk * StenoKeyboards Polyglot * StenoKeyboards Uni * Starboard ==== [[Setting up a hobbyist writer with Plover]] ==== == Stentura Protege == ==== [[Setting up a Stentura Protege with Plover]] ==== == Stentura 400SRT == ==== [[Setting up a Stentura 400SRT with Plover]] ==== ea08200947c8ce1b1ad67c52d296f011c4ce00aa 2219 2205 2024-06-23T21:52:28Z Aerick 9 /* Hobbyist writers */ wikitext text/x-wiki Each machine is set up differently with Plover. This page serves as a reference for all the different set up pages and instructions. == Hobbyist writers == All the hobbyist steno writers use the Gemini PR protocol by default: * TinyMod * Nolltronics Ecosteno * Nolltronics Multisteno * StenoKeyboards Asterisk * StenoKeyboards Polyglot * StenoKeyboards Uni * Starboard ==== See: [[setting up a hobbyist writer with Plover]] ==== == Stentura Protege == ==== See: [[setting up a Stentura Protege with Plover]] ==== == Stentura 400SRT == ==== See: [[setting up a Stentura 400SRT with Plover]] ==== 4b8c0edcfca141db324a5a2abda47e99b146f3c2 2223 2219 2024-06-23T22:05:54Z Aerick 9 wikitext text/x-wiki Each writer is set up differently with Plover. This page serves as a reference for all the different set up pages and instructions. == Hobbyist writers == All the hobbyist steno writers use the Gemini PR protocol by default: * TinyMod * Nolltronics Ecosteno * Nolltronics Multisteno * StenoKeyboards Asterisk * StenoKeyboards Polyglot * StenoKeyboards Uni * Starboard ==== See: [[setting up a hobbyist writer with Plover]] ==== == Stentura Protege == ==== See: [[setting up a Stentura Protege with Plover]] ==== == Stentura 400SRT == ==== See: [[setting up a Stentura 400SRT with Plover]] ==== d24fcbfc38c8d38662b1320171b743f5e083aaac 2224 2223 2024-06-23T22:06:00Z Aerick 9 Aerick moved page [[Setting up your machine with Plover]] to [[Setting up your writer with Plover]] wikitext text/x-wiki Each writer is set up differently with Plover. This page serves as a reference for all the different set up pages and instructions. == Hobbyist writers == All the hobbyist steno writers use the Gemini PR protocol by default: * TinyMod * Nolltronics Ecosteno * Nolltronics Multisteno * StenoKeyboards Asterisk * StenoKeyboards Polyglot * StenoKeyboards Uni * Starboard ==== See: [[setting up a hobbyist writer with Plover]] ==== == Stentura Protege == ==== See: [[setting up a Stentura Protege with Plover]] ==== == Stentura 400SRT == ==== See: [[setting up a Stentura 400SRT with Plover]] ==== d24fcbfc38c8d38662b1320171b743f5e083aaac Video game controllers 0 1509 2206 2024-06-23T20:30:33Z Aerick 9 Created page with "= Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockqu..." wikitext text/x-wiki = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] 10313d816563d61734e877e05ed67932c95ebf19 DIY steno writers 0 1510 2207 2024-06-23T20:35:17Z Aerick 9 Created page with "== DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches a..." wikitext text/x-wiki == DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> 92b51094a686389ae9a1f6d4d58c9942c88983ab 2211 2207 2024-06-23T21:00:26Z Aerick 9 /* DIY Machines */ wikitext text/x-wiki == DIY machines specifically for Plover == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} <span id="notebooks-with-nkro"></span> == Adapt a keyboard for steno use == <img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]"> Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use: * Keytoppers * Keycaps You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span> === Keytoppers === Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> <span id="keycaps"></span> === Keycaps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. <ul> <li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p> <p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li> <li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li> <li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul> Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span> e5d6a9027ed5756733130084d73302cb30773566 2222 2211 2024-06-23T22:04:20Z Aerick 9 /* Adapt a keyboard for steno use */ wikitext text/x-wiki == DIY machines specifically for Plover == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} 89b45beb75d508775b22ebb3ac68b703b5feeb3c Out of production writers 0 1511 2208 2024-06-23T20:37:17Z Aerick 9 Created page with "== Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Steno..." wikitext text/x-wiki == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> cc64f1b7bcea2f8b1bc49666fc65810dbfd4ae0c Using a standard keyboard with Plover 0 1512 2215 2024-06-23T21:27:05Z Aerick 9 Created page with "If you don’t have a steno machine, you can use a standard keyboard. However, most keyboards do not work very well with Plover for a number of reasons. First of all, the stagger makes it difficult to press multiple keys at once. Standard keyboards also have heavy switches, again making it difficult to press down multiple keys simultaneously. The majority of standard keyboards also do not have N-key rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover..." wikitext text/x-wiki If you don’t have a steno machine, you can use a standard keyboard. However, most keyboards do not work very well with Plover for a number of reasons. First of all, the stagger makes it difficult to press multiple keys at once. Standard keyboards also have heavy switches, again making it difficult to press down multiple keys simultaneously. The majority of standard keyboards also do not have N-key rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. == How do I know if my keyboard has NKRO? == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website. == What if my keyboard is not capable of NKRO? == If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. === Arpeggiate === With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time. See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]] To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|thumb|center]] === Roll your strokes === By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. See below for a demonstration of rolling: [[File:Keyboard-roll.gif|Demonstration of rolling."]] 6f4b3a57e5804fe7128d1a953f1dddacc4fba544 2217 2215 2024-06-23T21:50:05Z Aerick 9 wikitext text/x-wiki If you don’t have a steno machine, you can use a standard keyboard. However, most computer keyboards do not work very well with Plover for several reasons: * The staggered layout makes it difficult to press multiple keys at once. * Standard keyboards often have heavy switches, hindering the ability to press multiple keys simultaneously. * The majority of standard keyboards do not have N-key rollover (NKRO). The first two points are inherent in pretty much all standard keyboards. However, some keyboards do have NKRO, and this is desirable for steno. == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. Compared to those without, keyboards with NKRO are a little easier to learn on. It is less frustrating to get started learning stenography. == How do I know if my keyboard has NKRO? == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website. == Should I buy an NKRO keyboard? == In the past, people have recommended purchasing an NKRO keyboard to learn steno. While an NKRO keyboard can be quite inexpensive (as little at $30), we do not recommend this if you are sure about learning steno. The advantage of purchasing an NKRO keyboard is that it can still be useful as a regular keyboard if you end up changing your mind about learning stenography. That being said, if you are interested in purchasing an NKRO keyboard to make your initial Plover learning experience a little bit more enjoyable, you can shop online for "NKRO keyboards", or try some at a computer store. Some keyboards have been known to falsely advertise NKRO, but this has been quite rare. == What if my keyboard is not capable of NKRO? == If your keyboard is not capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the strokes. === Arpeggiate === With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a stroke until after you have pressed the spacebar. This way, you can press fewer keys at a time. See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]] To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|thumb|center]] === Roll your strokes === By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. See below for a demonstration of rolling: [[File:Keyboard-roll.gif|Demonstration of rolling."]] c5e7cab7ae27b57fc95d1086dfef9c0aaeae0287 2220 2217 2024-06-23T21:57:35Z Aerick 9 wikitext text/x-wiki If you don’t have a steno machine, you can use a standard keyboard. However, most computer keyboards do not work very well with Plover for several reasons: * The staggered layout makes it difficult to press multiple keys at once. * Standard keyboards often have heavy switches, hindering the ability to press multiple keys simultaneously. * The majority of standard keyboards do not have N-key rollover (NKRO). The first two points are inherent in pretty much all standard keyboards. However, some keyboards do have NKRO, and this is desirable for steno. == What’s NKRO? == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. Compared to those without, keyboards with NKRO are a little easier to learn on. It is less frustrating to get started learning stenography. == How do I know if my keyboard has NKRO? == In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website. == Should I buy an NKRO keyboard? == In the past, people have recommended purchasing an NKRO keyboard to learn steno. While an NKRO keyboard can be quite inexpensive (as little at $30), we do not recommend this if you are sure about learning steno. The advantage of purchasing an NKRO keyboard is that it can still be useful as a regular keyboard if you end up changing your mind about learning stenography. That being said, if you are interested in purchasing an NKRO keyboard to make your initial Plover learning experience a little bit more enjoyable, you can shop online for "NKRO keyboards", or try some at a computer store. Some keyboards have been known to falsely advertise NKRO, but this has been quite rare. == What if my keyboard is not capable of NKRO? == If your keyboard is not capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the strokes. === Arpeggiate === With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a stroke until after you have pressed the spacebar. This way, you can press fewer keys at a time. See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]] To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|thumb|center]] === Roll your strokes === By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. See below for a demonstration of rolling: [[File:Keyboard-roll.gif|Demonstration of rolling."]] == Adapting a standard keyboard for use with Plover == See: [[DIY machines#Adapt a keyboard for steno use|DIY machines]] 3f52707274e4727ce53e988d8cf1bb6ba18fdfa3 2221 2220 2024-06-23T22:04:09Z Aerick 9 wikitext text/x-wiki If you don’t have a steno machine, you can use a standard keyboard. However, most computer keyboards do not work very well with Plover for several reasons: * The staggered layout makes it difficult to press multiple keys at once. * Standard keyboards often have heavy switches, hindering the ability to press multiple keys simultaneously. * The majority of standard keyboards do not have N-key rollover (NKRO). The first two points are inherent in pretty much all standard keyboards. However, some keyboards do have NKRO, and this is desirable for steno. == NKRO == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. Compared to those without, keyboards with NKRO are a little easier to learn on. It is less frustrating to get started learning stenography. === How do I know if my keyboard has NKRO? === In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website. === Should I buy an NKRO keyboard? === In the past, people have recommended purchasing an NKRO keyboard to learn steno. While an NKRO keyboard can be quite inexpensive (as little at $30), we do not recommend this if you are sure about learning steno. The advantage of purchasing an NKRO keyboard is that it can still be useful as a regular keyboard if you end up changing your mind about learning stenography. That being said, if you are interested in purchasing an NKRO keyboard to make your initial Plover learning experience a little bit more enjoyable, you can shop online for "NKRO keyboards", or try some at a computer store. Some keyboards have been known to falsely advertise NKRO, but this has been quite rare. == What if my keyboard is not capable of NKRO? == If your keyboard is not capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the strokes. === Arpeggiate === With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a stroke until after you have pressed the spacebar. This way, you can press fewer keys at a time. See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]] To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|thumb|center]] === Roll your strokes === By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. See below for a demonstration of rolling: [[File:Keyboard-roll.gif|Demonstration of rolling."]] == Adapting a standard keyboard for use with Plover == === Top row key cap flip === On most mechanical keyboards, it is possible to take off the top row of key caps and flip them. This brings the two keys in a column closer together. [[File:Mech keyboard with top row flipped.png|alt=Mechanical keyboard with top row flipped for steno use|center|thumb|711x711px|Flipping the top row of keys can make it easier it press two keys in a column simultaneously.]] === Key toppers === You can glue key toppers to the existing keys to make them easier to press. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store], and you can also make your own key toppers out of plastic, cardboard, or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg"> === Key caps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom key caps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. * [https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service. <img src="https://imgur.com/FRwXu8x.jpg" width="400"> * [https://aerick.ca/steno/outemu-stenotoppers/ Aerick's Outemu StenoToppers] are a derivative of the original stenotoppers that work better on some keyboard switches. * The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>) * You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap]. Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary). 6e44e6921d63e5eb5716f24a3ac94f8dfbd8ec0c Setting up your machine with Plover 0 1513 2225 2024-06-23T22:06:00Z Aerick 9 Aerick moved page [[Setting up your machine with Plover]] to [[Setting up your writer with Plover]] wikitext text/x-wiki #REDIRECT [[Setting up your writer with Plover]] ce42bc1e9e321a8d5b792a433186b8984e0d3caa DIY steno writers 0 1510 2230 2222 2024-06-23T22:15:21Z Aerick 9 wikitext text/x-wiki == DIY writers specifically for Plover == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} ede978861cd55b09ef3c49515229359fda88e248 2231 2230 2024-06-23T22:15:28Z Aerick 9 Aerick moved page [[DIY machines]] to [[DIY writers]] wikitext text/x-wiki == DIY writers specifically for Plover == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} ede978861cd55b09ef3c49515229359fda88e248 2233 2231 2024-06-23T22:16:38Z Aerick 9 Aerick moved page [[DIY writers]] to [[DIY steno writers]] wikitext text/x-wiki == DIY writers specifically for Plover == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} === Which type of key switch should I choose? === Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" |- ! How many keys are in the average chord? ! |- | 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" |- ! Switch ! Stat ! Note ! Machines |- | Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- | Gateron Clear / White | 35 cN linear | A popular stock option available on the market | All StenoKeyboards boards and the TinyMod use this switch |- | Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |- | Cherry MX Red | 45 cN linear | | |- | Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |- | Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- | Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span> == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} ede978861cd55b09ef3c49515229359fda88e248 2240 2233 2024-06-23T22:22:28Z Aerick 9 /* Which type of key switch should I choose? */ wikitext text/x-wiki == DIY writers specifically for Plover == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps. |- | [https://nolltronics.com/product/picosteno/ Picosteno] | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make! |- | [https://github.com/mike-ady/Stenokey Stenokey] | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |- | [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB] | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |- | [https://github.com/ttempe/YASK Yet Another Steno Keyboard] | <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled &amp; staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions] |} == Choosing a key switch == Choose a linear key switch with a light actuation force. The two most popular switches are the '''Kailh Choc Pink Pro''' and the '''Gateron Clear/White.''' See: [[Steno key switches]] == NKRO keyboards with an ortholinear layout == Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger. The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | [https://deskthority.net/wiki/ErgoDox ErgoDox] | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti]. |- | [https://olkb.com/planck/ Planck] | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]] |- | [https://olkb.com/preonic/ Preonic] | OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |- | [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin] | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard. |- | [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris] | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built. |} 049508c6256781ab9769ffddd0fe2a433ae65300 DIY machines 0 1514 2232 2024-06-23T22:15:28Z Aerick 9 Aerick moved page [[DIY machines]] to [[DIY writers]] wikitext text/x-wiki #REDIRECT [[DIY writers]] 55d838b676eb78bc50d9deb32608b98d55324085 DIY writers 0 1515 2234 2024-06-23T22:16:38Z Aerick 9 Aerick moved page [[DIY writers]] to [[DIY steno writers]] wikitext text/x-wiki #REDIRECT [[DIY steno writers]] 0655fee0cf4982f58822edbc53ac9ddcd72a3a39 Out of production writers 0 1511 2235 2208 2024-06-23T22:17:50Z Aerick 9 Aerick moved page [[Out of production machines]] to [[Out of production writers]] wikitext text/x-wiki == Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> cc64f1b7bcea2f8b1bc49666fc65810dbfd4ae0c 2237 2235 2024-06-23T22:18:04Z Aerick 9 wikitext text/x-wiki Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> 62817bf9d9aa30ff898536b6083ebc5c6a475c20 Out of production machines 0 1516 2236 2024-06-23T22:17:50Z Aerick 9 Aerick moved page [[Out of production machines]] to [[Out of production writers]] wikitext text/x-wiki #REDIRECT [[Out of production writers]] 6551fa21918a72f5a7cb1f7973e3c8a0ac38bdf7 Supported hardware 0 10 2238 2227 2024-06-23T22:18:08Z Aerick 9 /* What steno keyboard should I get? */ wikitext text/x-wiki = What steno writer should I get? = This page covers the following machines that you can use with Plover: # [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]] # [[Supported Hardware#Stenotype Machines|Stenotype machines]] # [[Supported Hardware#Standard keyboards|Standard computer keyboards]] # [[Supported Hardware#Video game controllers|Video game controllers]] We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. They're all really good, and the best one is whichever is in stock! If you are interested in making your own steno keyboard, take a look at [[DIY steno writers]]. == Commercially available hobbyist writers == <!-- Group by brand (alphabetical), out of stock at bottom --> If you need to use steno on a device that you can't install Plover on, any keyboard compatible with [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these machines with Plover, see [[setting up a hobbyist writer with Plover]]. See also: [[out of production writers]]. = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]] [[Category:Plover]] cab3fe66d427dcc196f1c69553bdffa1f9578078 2243 2238 2024-06-23T22:26:49Z Aerick 9 wikitext text/x-wiki This page covers the following machines that you can use with Plover: # [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]] # [[Supported Hardware#Stenotype Machines|Stenotype machines]] # [[Supported Hardware#Standard keyboards|Standard computer keyboards]] # [[Supported Hardware#Video game controllers|Video game controllers]] == What steno writer should I get? == We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. They're all really good, and the best one is whichever is in stock! If you are interested in building your own steno keyboard, take a look at [[DIY steno writers]]. == Commercially available hobbyist writers == <!-- Group by brand (alphabetical), out of stock at bottom --> If you need to use steno on a device that you can't install Plover on, any keyboard compatible with [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these machines with Plover, see [[setting up a hobbyist writer with Plover]]. See also: [[out of production writers]]. = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]] [[Category:Plover]] 0655dfbfbe37f25260fc2de3de648847ceb9f25e 2255 2243 2024-06-24T21:29:48Z Aerick 9 /* add link to choosing a steno writer page */ wikitext text/x-wiki This page covers the following machines that you can use with Plover: # [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]] # [[Supported Hardware#Stenotype Machines|Stenotype machines]] # [[Supported Hardware#Standard keyboards|Standard computer keyboards]] # [[Supported Hardware#Video game controllers|Video game controllers]] == What steno writer should I get? == We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. They're all really good, and the best one is whichever is in stock! If you are interested in building your own steno keyboard, take a look at [[DIY steno writers]]. == Commercially available hobbyist writers == <!-- Group by brand (alphabetical), out of stock at bottom --> If you need to use steno on a device that you can't install Plover on, any keyboard compatible with [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. See also: [[choosing a hobbyist steno writer]]. {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these machines with Plover, see [[setting up a hobbyist writer with Plover]]. See also: [[out of production writers]]. = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]] [[Category:Plover]] 06db877e039a6b009a3795274e8bf31a97f85003 2258 2255 2024-06-24T22:14:36Z Aerick 9 /* revise explanation for choosing a hobbyist writer */ wikitext text/x-wiki This page covers the following machines that you can use with Plover: # [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]] # [[Supported Hardware#Stenotype Machines|Stenotype machines]] # [[Supported Hardware#Standard keyboards|Standard computer keyboards]] # [[Supported Hardware#Video game controllers|Video game controllers]] == What steno writer should I get? == We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. They're all really good, and the best one is whichever is in stock! If you are interested in building your own steno keyboard, take a look at [[DIY steno writers]]. == Commercially available hobbyist writers == <!-- Group by brand (alphabetical), out of stock at bottom --> For most users, any of these writers are perfectly adequate! Choose one that's in stock and within your budget. If you cannot run Plover on your device, intend to steno in a language that's not English, or want to exclusively use your steno writer for your computer tasks, see [[choosing a hobbyist steno writer]]. {| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these machines with Plover, see [[setting up a hobbyist writer with Plover]]. See also: [[out of production writers]]. = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]] [[Category:Plover]] 9e1cde36036e34538c4a07676c352aff2ba24627 2260 2258 2024-06-24T23:37:53Z Aerick 9 /* What steno writer should I get? */ wikitext text/x-wiki Having a dedicated steno device is helpful for ergonomics and speed. This page lists the [[types of steno hardware]] (writers/machines/keyboards) that Plover supports. For most users, we recommend one of the [[Supported Hardware# Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports: * [[Supported Hardware# Stenotype machines|Professional stenotype machines]] * [[Supported Hardware# Standard keyboards|Standard keyboards]] * [[Supported Hardware# Video game controllers|Video game controllers]] (requires a plugin) * [[Supported Hardware# DIY steno writers|DIY steno writers]] == Commercially available hobbyist writers == ''See also: [[choosing a hobbyist steno writer]].'' <!-- Group by brand (alphabetical), out of stock at bottom -->{| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (June 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]]. ''See also: [[out of production writers]].'' = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]] = DIY steno writers = See: [[DIY steno writers]] [[Category:Plover]] 9807c06700820c9e6b975a65c5b7404b4424cf25 2262 2260 2024-06-25T00:01:08Z Aerick 9 wikitext text/x-wiki Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports. For most users, we recommend one of the [[Supported Hardware# Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports: * [[Supported Hardware# Stenotype machines|Professional stenotype machines]] * [[Supported Hardware# Standard keyboards|Standard keyboards]] * [[Supported Hardware# Video game controllers|Video game controllers]] (requires a plugin) * [[Supported Hardware# DIY steno writers|DIY steno writers]] == Commercially available hobbyist writers == ''See also: [[choosing a hobbyist steno writer]].'' <!-- Group by brand (alphabetical), out of stock at bottom -->{| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (June 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]]. ''See also: [[out of production writers]].'' = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]] = DIY steno writers = See: [[DIY steno writers]] [[Category:Plover]] 2478566e84c411ae8ef1a40fb78fc6cf8c89d365 2263 2262 2024-06-25T00:02:52Z Aerick 9 /* Video game controllers */ wikitext text/x-wiki Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports. For most users, we recommend one of the [[Supported Hardware# Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports: * [[Supported Hardware# Stenotype machines|Professional stenotype machines]] * [[Supported Hardware# Standard keyboards|Standard keyboards]] * [[Supported Hardware# Video game controllers|Video game controllers]] (requires a plugin) * [[Supported Hardware# DIY steno writers|DIY steno writers]] == Commercially available hobbyist writers == ''See also: [[choosing a hobbyist steno writer]].'' <!-- Group by brand (alphabetical), out of stock at bottom -->{| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (June 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]]. ''See also: [[out of production writers]].'' = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Video game controllers]] = DIY steno writers = See: [[DIY steno writers]] [[Category:Plover]] 5657b10d1e1185ea4065d536e6f0e4d5608a3c0f 2270 2263 2024-06-25T00:10:52Z Aerick 9 Aerick moved page [[Supported Hardware]] to [[Supported hardware]]: Title style wikitext text/x-wiki Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports. For most users, we recommend one of the [[Supported Hardware# Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports: * [[Supported Hardware# Stenotype machines|Professional stenotype machines]] * [[Supported Hardware# Standard keyboards|Standard keyboards]] * [[Supported Hardware# Video game controllers|Video game controllers]] (requires a plugin) * [[Supported Hardware# DIY steno writers|DIY steno writers]] == Commercially available hobbyist writers == ''See also: [[choosing a hobbyist steno writer]].'' <!-- Group by brand (alphabetical), out of stock at bottom -->{| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (June 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]]. ''See also: [[out of production writers]].'' = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Video game controllers]] = DIY steno writers = See: [[DIY steno writers]] [[Category:Plover]] 5657b10d1e1185ea4065d536e6f0e4d5608a3c0f 2274 2270 2024-06-25T00:12:03Z Aerick 9 Fix links after redirect change wikitext text/x-wiki Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports. For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports: * [[Supported hardware#Stenotype machines|Professional stenotype machines]] * [[Supported hardware#Standard keyboards|Standard keyboards]] * [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin) * [[Supported hardware#DIY steno writers|DIY steno writers]] == Commercially available hobbyist writers == ''See also: [[choosing a hobbyist steno writer]].'' <!-- Group by brand (alphabetical), out of stock at bottom -->{| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (June 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)] |No | $138 |}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]]. ''See also: [[out of production writers]].'' = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Video game controllers]] = DIY steno writers = See: [[DIY steno writers]] [[Category:Plover]] 827fdffab706755c6d6014b4456e2d48f4a5eaf8 Steno key switches 0 1517 2239 2024-06-23T22:20:03Z Aerick 9 Created page with "Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 gra..." wikitext text/x-wiki Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" !How many keys are in the average chord? ! |- |1: 23 2: 221 3: 1115 4: 3247 5: 6168 6: 7820 7: 7293 8: 5069 9: 2707 10: 1126 11: 331 12: 90 13: 21 14: 3 15: 1 |<img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" !Switch !Stat !Note !Machines |- |Kailh Choc Pink Pro |20 cN linear |The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier |All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- |Gateron Clear / White |35 cN linear |A popular stock option available on the market |All StenoKeyboards boards and the TinyMod use this switch |- |Matias Red |35 cN linear |Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry |SOFT/HRUF uses this switch |- |Cherry MX Red |45 cN linear | | |- |Kailh Silver |50 cN spring* linear |Has an early actuation (1.1mm vs 2mm) | |- |Cherry MX Brown |45 cN bumpy |While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- |Kailh Choc Red |50 cN spring* linear | |The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat. 8d2b6f009b87feabb9508e20b66f8a3bfdb3374a 2241 2239 2024-06-23T22:23:04Z Aerick 9 wikitext text/x-wiki Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.''' {| class="wikitable" !How many keys are in the average chord? ! |- |1: 23 2: 221 3: 1115 4: 3247 5: 6168 6: 7820 7: 7293 8: 5069 9: 2707 10: 1126 11: 331 12: 90 13: 21 14: 3 15: 1 |<img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |} The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple. Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke. Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity. {| class="wikitable" !Switch !Stat !Note !Machines |- |Kailh Choc Pink Pro |20 cN linear |The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier |All Nolltronics boards and the Starboard use this switch |- |Kailh Choc Nocturnal |20 cN linear, silent | | |- |Gateron Clear / White |35 cN linear |A popular stock option available on the market |All StenoKeyboards boards and the TinyMod use this switch |- |Matias Red |35 cN linear |Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry |SOFT/HRUF uses this switch |- |Cherry MX Red |45 cN linear | | |- |Kailh Silver |50 cN spring* linear |Has an early actuation (1.1mm vs 2mm) | |- |Cherry MX Brown |45 cN bumpy |While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |- |Kailh Choc Red |50 cN spring* linear | |The Georgi uses this switch |} * The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN. There are other methods to decrease actuation force for even these switches. This includes: * Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro * Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point. * Trimming the springs of a linear switch by several mm to reduce force. * Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market. * Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat. dade7a067bf95bf10527fcf296bff0b203273725 Beginner's Guide 0 4 2242 2229 2024-06-23T22:25:47Z Aerick 9 /* Write “Hello World” */ wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno. <!--T:13--> Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] <!--T:14--> <span id="use-a-standard-qwerty-keyboard"></span> === Use a standard QWERTY keyboard === <!--T:15--> If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes. <!--T:16--> <span id="arpeggiate"></span> ==== Arpeggiate ==== <!--T:17--> With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time. <!--T:18--> See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]] <!--T:19--> To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|thumb|center]] <!--T:20--> <span id="rolling-your-strokes"></span> ==== Roll your strokes ==== <!--T:21--> By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. <!--T:22--> See below for a demonstration of rolling: [[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]] <!--T:23--> Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]]. <!--T:24--> <span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span> === Use an N-key rollover (NKRO) QWERTY keyboard === <!--T:25--> An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. <!--T:26--> To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up. <!--T:27--> Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]]. <!--T:28--> <span id="which-nkro-keyboard-should-i-get"></span> ==== Which NKRO keyboard should I get? ==== <!--T:29--> We only recommend purchasing an NKRO keyboard if you cannot purchase a dedicated hobbyist writer. NKRO keyboards are less expensive, and also can be used as regular keyboards if you change your mind and decide not to learn steno. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). <!--T:30--> * See: [[using a standard keyboard with Plover]] <!--T:35--> <span id="use-a-machine-designed-for-use-with-plover"></span> === Use a machine designed for use with Plover === <!--T:36--> Various steno enthusiasts are making and selling writers designed for use with Plover: <!--T:37--> * [https://nolltronics.com/product/ecosteno/ Ecosteno] * [https://nolltronics.com/product/multisteno/ Multisteno] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] * [https://softhruf.love/products/soft-hruf-erl Splitography] * [https://www.stenography.store/ Starboard] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod] * [https://stenokeyboards.com/ The Uni] <!--T:38--> More information: [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. <!--T:39--> <span id="use-a-professional-stenography-machine"></span> === Use a professional stenography machine === <!--T:40--> Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. <!--T:41--> See the [[Supported Hardware]] page for a list of supported professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]]. <!--T:45--> === Enable Plover === Once you have set up your machine with Plover <!--T:46--> # Run Plover. # In the main window of Plover, set <code>Output</code> to <code>Enabled</code> <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below: <!--T:50--> <br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so: [[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]] If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly. * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes. <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> [[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]] <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:79--> <span id="personalizing-your-dictionary></span> == Personalizing your dictionary == <!--T:80--> English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes. <!--T:81--> English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things. <!--T:82--> For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else. <!--T:83--> When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write. More information: [[Personalizing your dictionary]]. <!--T:78--> [[Category:Plover]] </translate> 9622a25871d6417f76104121f1e5e2c79f0db912 2244 2242 2024-06-23T22:35:21Z Aerick 9 /* Connect a compatible keyboard or stenography machine */ wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. Owning a dedicated dedicated steno writer makes it easier to reach high speeds. '''If you are unsure of if you want to learn steno''', read the page on [[using a standard keyboard with Plover]]. '''If you are sure you want to learn steno''', we recommend purchasing a [[Supported Hardware|commercially available hobbyist writer]].<span id="rolling-your-strokes"></span> <!--T:41--> It is also possible to use a professional stenography machine with Plover. See the [[Supported Hardware]] page for a list of compatible professional stenography machines. <!--T:42--> <span id="confirm-its-working"></span> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]]. <!--T:45--> === Enable Plover === Once you have set up your machine with Plover <!--T:46--> # Run Plover. # In the main window of Plover, set <code>Output</code> to <code>Enabled</code> <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below: <!--T:50--> <br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so: [[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]] If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly. * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes. <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> [[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]] <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:79--> <span id="personalizing-your-dictionary></span> == Personalizing your dictionary == <!--T:80--> English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes. <!--T:81--> English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things. <!--T:82--> For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else. <!--T:83--> When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write. More information: [[Personalizing your dictionary]]. <!--T:78--> [[Category:Plover]] </translate> 5bf0ac054b66bfe413d869341462028bc086a9ea 2245 2244 2024-06-23T22:37:06Z Aerick 9 /* Connect a compatible keyboard or stenography machine */ wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. Owning a dedicated dedicated steno writer makes it easier to reach high speeds. '''If you are unsure of if you want to learn steno''', read the page on [[using a standard keyboard with Plover]]. '''If you are sure you want to learn steno''', we recommend purchasing a [[Supported Hardware#What steno writer should I get?|commercially available hobbyist writer]]. <!--T:41--> It is also possible to use a professional stenography machine with Plover. See the [[Supported Hardware#Stenotype machines|supported Hardware]] page for a list of compatible professional stenography machines. <!--T:42--> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]]. <!--T:45--> === Enable Plover === Once you have set up your machine with Plover <!--T:46--> # Run Plover. # In the main window of Plover, set <code>Output</code> to <code>Enabled</code> <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below: <!--T:50--> <br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so: [[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]] If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly. * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes. <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> [[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]] <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]]. <!--T:71--> <span id="which-steno-theory-should-you-learn"></span> === Which steno theory should you learn? === <!--T:72--> There are many steno theories that encompass the rules you use to convert words to steno strokes. <!--T:73--> Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. <!--T:74--> The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. <!--T:75--> One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. <!--T:76--> '''We recommend learning either Plover theory or Lapwing theory.''' <!--T:77--> Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. <!--T:79--> <span id="personalizing-your-dictionary></span> == Personalizing your dictionary == <!--T:80--> English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes. <!--T:81--> English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things. <!--T:82--> For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else. <!--T:83--> When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write. More information: [[Personalizing your dictionary]]. <!--T:78--> [[Category:Plover]] </translate> b5d8d4182e1d50b9562b9402384d0a90affd651d File:Key toppers.jpg 6 1518 2246 2024-06-23T22:48:17Z Aerick 9 wikitext text/x-wiki key toppers 04346a934d847d4b58d3ba1d0a38f1f93d742017 File:3D printed key toppers1.jpg 6 1520 2248 2024-06-23T22:53:36Z Aerick 9 wikitext text/x-wiki 3D printed key toppers 6aad003dbbd5f178a33c23958d4b89aad9ebc4f6 File:Stenotoppers.jpg 6 1521 2249 2024-06-23T22:55:36Z Aerick 9 wikitext text/x-wiki Stenotoppers d427455e15b32ae1e2e69721d9bbd9dd2d415f9c File:Aerick outemu stenotoppers.png 6 1522 2250 2024-06-23T22:57:00Z Aerick 9 wikitext text/x-wiki Aerick outemu stenotoppers ac94ce566f6484314eaaebb8cf1cd2ae867e420c Using a standard keyboard with Plover 0 1512 2251 2221 2024-06-23T22:57:33Z Aerick 9 /* Key toppers */ wikitext text/x-wiki If you don’t have a steno machine, you can use a standard keyboard. However, most computer keyboards do not work very well with Plover for several reasons: * The staggered layout makes it difficult to press multiple keys at once. * Standard keyboards often have heavy switches, hindering the ability to press multiple keys simultaneously. * The majority of standard keyboards do not have N-key rollover (NKRO). The first two points are inherent in pretty much all standard keyboards. However, some keyboards do have NKRO, and this is desirable for steno. == NKRO == NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. Compared to those without, keyboards with NKRO are a little easier to learn on. It is less frustrating to get started learning stenography. === How do I know if my keyboard has NKRO? === In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO. The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website. === Should I buy an NKRO keyboard? === In the past, people have recommended purchasing an NKRO keyboard to learn steno. While an NKRO keyboard can be quite inexpensive (as little at $30), we do not recommend this if you are sure about learning steno. The advantage of purchasing an NKRO keyboard is that it can still be useful as a regular keyboard if you end up changing your mind about learning stenography. That being said, if you are interested in purchasing an NKRO keyboard to make your initial Plover learning experience a little bit more enjoyable, you can shop online for "NKRO keyboards", or try some at a computer store. Some keyboards have been known to falsely advertise NKRO, but this has been quite rare. == What if my keyboard is not capable of NKRO? == If your keyboard is not capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the strokes. === Arpeggiate === With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a stroke until after you have pressed the spacebar. This way, you can press fewer keys at a time. See below for a demonstration of using the arpeggiate function: [[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]] To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. [[File:Plover-arpeggiate-option.png|thumb|center]] === Roll your strokes === By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. See below for a demonstration of rolling: [[File:Keyboard-roll.gif|alt=Demonstration of rolling."|center]] == Adapting a standard keyboard for use with Plover == === Top row key cap flip === On most mechanical keyboards, it is possible to take off the top row of key caps and flip them. This brings the two keys in a column closer together. [[File:Mech keyboard with top row flipped.png|alt=Mechanical keyboard with top row flipped for steno use|center|thumb|711x711px|Flipping the top row of keys can make it easier it press two keys in a column simultaneously.]] === Key toppers === You can glue key toppers to the existing keys to make them easier to press. You can buy laser-cut key toppers from the [http://plover.deco-craft.com/ Plover Store], and you can also make your own key toppers out of plastic, cardboard, or even coins. [[File:3D printed key toppers1.jpg|alt=3D printed key toppers glued on a keyboard.|center|thumb|436x436px|3D printed key toppers glued on a keyboard.]] [[File:Key toppers.jpg|center|thumb|368x368px|Key toppers from the Plover store.]] === Key caps === If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom key caps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing. * [https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service. [[File:Stenotoppers.jpg|center|thumb|585x585px]] * [https://aerick.ca/steno/outemu-stenotoppers/ Aerick's Outemu StenoToppers] are a derivative of the original stenotoppers that work better on some keyboard switches. [[File:Aerick outemu stenotoppers.png|alt=Aerick outemu stenotoppers|center|thumb|610x610px]] * The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>) * You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap]. Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary). e8428c864ede17a20bd9e3251636963a454fa52c Troubleshooting issues 0 14 2252 2198 2024-06-23T23:08:04Z Aerick 9 /* Plover not working on Wayland */ wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate. === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == ===Disappearing plugins manager=== When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing. # In the toolbar, select <code>File → Open Config Folder</code> # Delete the <code>Plugins</code> folder # Uninstall and reinstall Plover ===Plugins not showing in the plugins manager=== Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually Installing Plugins|manually Installing Plugins]]. == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == === No output despite keys showing up in the paper tape === # Enable Plover's output. # Open the paper tape and press some keys. #* If nothing shows up, you will first need to set up your machine. #* If you see letters showing in the paper tape, follow the rest of these instructions. # Open <code>System Settings &#x3E; Privacy & Security &#x3E; Accessibility</code>. #* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!''' # Add the <code>Plover</code> app with the <code>+</code> button. === Incompatibility with Karabiner Elements === Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover. === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == === Missing or jumbled output === IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>. [[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]] === Linux dynamic keyboard layout switching is not working === Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298]. === Delayed/slow output when using gnome-shell and the keyboard machine === It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. === Plover not working on Wayland === Plover does not officially support Wayland. This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success. The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. See the Wiki page on the [[plover-uinput]] plugin for more details. 61b4239f4641c3a51ea8554c5bf08afcb5cd87f3 Javelin 0 1523 2253 2024-06-23T23:20:44Z Aerick 9 Created page with "Javelin is an embedded steno engine that can run in a keyboard's firmware. This allows the keyboard to directly translate the strokes to text, thereby bypassing the need to install Plover (or anything) on the host machine. All the dictionaries and translation occurs in the keyboard itself. Javelin allows for "plug and play stenography". It is compatible with the following hobbyist steno writers: * StarBoard * StenoKeyboards Asterisk * StenoKeyboards Polyglot * StenoKeyb..." wikitext text/x-wiki Javelin is an embedded steno engine that can run in a keyboard's firmware. This allows the keyboard to directly translate the strokes to text, thereby bypassing the need to install Plover (or anything) on the host machine. All the dictionaries and translation occurs in the keyboard itself. Javelin allows for "plug and play stenography". It is compatible with the following hobbyist steno writers: * StarBoard * StenoKeyboards Asterisk * StenoKeyboards Polyglot * StenoKeyboards Uni Javelin is also compatible with several DIY steno writers. 7bce9bef67d399044d8fab2a85a21e134feb5fc9 Style guide 0 1524 2254 2024-06-23T23:28:05Z Aerick 9 Created page with "== Titles and headings == * Capitalize first word, otherwise follow sentence casing * Preserve proper nouns casing == Nouns == Follow how nouns are stylized on Wikipedia." wikitext text/x-wiki == Titles and headings == * Capitalize first word, otherwise follow sentence casing * Preserve proper nouns casing == Nouns == Follow how nouns are stylized on Wikipedia. 2c5e4f66c5a1cb8290eaf29f40db891a2d823e45 Choosing a hobbyist steno writer 0 1525 2256 2024-06-24T21:39:53Z Aerick 9 Created page with "For most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate. However, if you intend to use Plover for languages other than English, or are intending to switch to steno full time, there are some important aspects to take into consideration. == Non-English language support == The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]..." wikitext text/x-wiki For most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate. However, if you intend to use Plover for languages other than English, or are intending to switch to steno full time, there are some important aspects to take into consideration. == Non-English language support == The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]] (WSI), may not be sufficient for other languages. The layout for [[Steno Layouts and Supported Languages#Korean CAS|Korean CAS]] , for example, uses 6 thumb keys and has an entire dedicated row for numbers. If you are intending to use Plover for other languages, have a look at the [[Steno Layouts and Supported Languages|languages]] page for more details on the layouts supported by Plover. If you decide to learn steno in a language requiring a larger layout, we recommend the following options: * Nolltronics Multisteno * StenoKeyboards Polyglot == Using a steno keyboard exclusively == 00bc5652415d2c4d59bff006647c29aadb55c181 2257 2256 2024-06-24T22:09:06Z Aerick 9 wikitext text/x-wiki For most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate—choose a writer that's in stock, and within your budget. However, you may want to take more care in choosing a writer if any of the following apply to you: * You cannot run Plover on your device ** Incompatible devices (Android and iOS devices) ** Insufficient permissions on your computer (work/school computer) * You intend to steno in a language that's not English * You will exclusively use your steno writer in your computer usage == Javelin support == == Non-English language support == The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]] (WSI), may not be sufficient for other languages. The layout for [[Steno Layouts and Supported Languages#Korean CAS|Korean CAS]] , for example, uses 6 thumb keys and has an entire dedicated row for numbers. If you are intending to use Plover for other languages, have a look at the [[Steno Layouts and Supported Languages|languages]] page for more details on the layouts supported by Plover. If you decide to learn steno in a language requiring a larger layout, we recommend the following options: * Nolltronics Multisteno * StenoKeyboards Polyglot == Using a steno keyboard exclusively == 8bbfe69534843b454783cc5aad32780958778dba 2259 2257 2024-06-24T22:51:18Z Aerick 9 /* rewrite page add table*/ wikitext text/x-wiki LiFor most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate—choose a writer that's in stock, and within your budget. However, you may want to take more care in choosing a writer if any of the following apply to you: * You cannot run Plover on your device ** Incompatible devices (Android and iOS devices) ** Insufficient permissions on your computer (work/school computer) * You intend to steno in a language that's not English * You will exclusively use your steno writer in your computer usage == Considerations == === Javelin support === [[Javelin]] is a steno engine that can be embedded within a keyboard itself, bypassing the need to install Plover on the host machine; essentially "plug and play stenography" without any setup required. This is useful if you cannot run Plover on your device. === Non-English language support === The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]] (WSI), may not be sufficient for other languages. The layout for [[Steno Layouts and Supported Languages#Korean CAS|Korean CAS]] , for example, uses 6 thumb keys and has an entire dedicated row for numbers. If you are intending to use Plover for other languages, have a look at the [[Steno Layouts and Supported Languages|languages]] page for more details on the layouts supported by Plover. === Using a steno writer exclusively === It is possible to use a steno writer as your only keyboard for all your computer usage. However, sometimes it may be useful to have extra keys for two main reasons. First, some steno writers also double as a standard keyboard. They can be toggled to behave like a QWERTY keyboard (or any other layout), such that you do not need to switch physical keyboards. Furthermore, the extra keys on a steno writer can be mapped to modifier keys. This helps facilitating holding down keys as required for certain applications like CAD. == Table summary == {| class="wikitable sortable" !Product Name !Javelin Support !Non-English language support !QWERTY layer / Extra keys |- |[https://stenomod.blogspot.com/ TinyMod] |No |Limited to WSI |No |- |[https://nolltronics.com/product/ecosteno/ Ecosteno] | rowspan="2" |No |Limited to WSI |No |- |[https://nolltronics.com/product/multisteno/ Multisteno] |Yes |Yes |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |Yes |Limited to WSI |No |- |[https://www.stenokeyboards.com/products/the-uni-v4 The Uni] |Limited to WSI |No |- |[https://stenokeyboards.com/products/polyglot-keyboard Polyglot] |Yes |Yes |- |[https://www.stenography.store/ Starboard] |Yes |Limited to WSI |No |- |[https://softhruf.love/ SOFT/HRUF Splitography] |No |Yes |Yes |} 7e84b95388000731f87c20ccdb02b5438412db7a Steno hardware terminology 0 1526 2261 2024-06-25T00:00:48Z Aerick 9 Created page with "There are multiple different names for stenographic input devices. Some terms are preferred over others, and there is not always a consensus for the definitions listed in this page. == Stenography writer == Often shortened as "steno writer", this refers to any kind of stenographic input device. It includes devices with levers such as the [[Stentura protege]] and [[Luminex]], hobbyist devices that use keyboard switches (such as the [[Nolltronics Multisteno]] and the St..." wikitext text/x-wiki There are multiple different names for stenographic input devices. Some terms are preferred over others, and there is not always a consensus for the definitions listed in this page. == Stenography writer == Often shortened as "steno writer", this refers to any kind of stenographic input device. It includes devices with levers such as the [[Stentura protege]] and [[Luminex]], hobbyist devices that use keyboard switches (such as the [[Nolltronics Multisteno]] and the [[StenoKeyboards Uni]]), devices that use capacitive touch sensors (like the [[StenoKeyboards Asterisk]]), and even [[video game controllers]]. == Stenography machine == Often shortened as "steno machine", this term is sometimes used in two different ways. It can exclusively refer to professional steno writers only (such as the [[Luminex]] and [[LightSpeed]]). However, for most people in the Open Steno community, it is synonymous with the term "stenography writer" as defined above. Due to the ambiguity, this term is not preferred throughout this Wiki. == Stenography keyboard == Often shortened as "steno keyboard" or "steno board", this name is used for hobbyist steno writers (like the [[Nolltronics Multisteno]] or [[StenoKeyboards Asterisk]]). == Stenotype machine == This term (also shortened as "stenotype") is rarely used to describe a hobbyist steno writer. It is more often used for professional steno writers. 21b6e2dbe640cf79483b473cad9c9175f1791573 2267 2261 2024-06-25T00:05:43Z Aerick 9 wikitext text/x-wiki There are multiple different names for stenographic input devices. Some terms are preferred over others, and there is not always a consensus for the definitions listed in this page. == Stenography writer == Often shortened as "steno writer" or just "writer", this refers to any kind of stenographic input device. It includes devices with levers such as the [[Stentura protege]] and [[Luminex]], hobbyist devices that use keyboard switches (such as the [[Nolltronics Multisteno]] and the [[StenoKeyboards Uni]]), devices that use capacitive touch sensors (like the [[StenoKeyboards Asterisk]]), and even [[video game controllers]]. == Stenography machine == Often shortened as "steno machine" or just "machine", this term is sometimes used in two different ways. It can exclusively refer to professional steno writers only (such as the [[Luminex]] and [[LightSpeed]]). However, for most people in the Open Steno community, it is synonymous with the term "stenography writer" as defined above. Due to the ambiguity, this term is not preferred throughout this Wiki. == Stenography keyboard == Often shortened as "steno keyboard", "steno board", or just "board", this name is used for hobbyist steno writers (like the [[Nolltronics Multisteno]] or [[StenoKeyboards Asterisk]]). == Stenotype machine == This term (also shortened as "stenotype") is rarely used to describe a hobbyist steno writer. It is more often used for professional steno writers. 8e4023ad63e0df2db8e48a695378caebcb13550e Video game controllers 0 1509 2264 2206 2024-06-25T00:03:36Z Aerick 9 Aerick moved page [[Setting up a video game controller with Plover]] to [[Video game controllers]] wikitext text/x-wiki = Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] 10313d816563d61734e877e05ed67932c95ebf19 2266 2264 2024-06-25T00:03:46Z Aerick 9 wikitext text/x-wiki It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote> == Troubleshooting == Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin. == Usage == The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory. === Skipping Joystick Keys with the Reverse Steno Order Method === The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code> === Skipping Joystick Keys with the Opposite Direction Overlap Method === There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club". [[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]] c2a7a8f236e36aa1af41a27327266aec00493f00 Setting up a video game controller with Plover 0 1527 2265 2024-06-25T00:03:36Z Aerick 9 Aerick moved page [[Setting up a video game controller with Plover]] to [[Video game controllers]] wikitext text/x-wiki #REDIRECT [[Video game controllers]] 82682d158118d7daa74c86755810496f465864f7 Talk:Setting up your writer with Plover 1 1528 2268 2024-06-25T00:08:53Z Aerick 9 Created page with "Instead of headers and links, maybe make it like a category page on Wikipedia: https://en.wikipedia.org/wiki/Category%3AApril . Not sure how to do that here, though." wikitext text/x-wiki Instead of headers and links, maybe make it like a category page on Wikipedia: https://en.wikipedia.org/wiki/Category%3AApril . Not sure how to do that here, though. 68271b2ac3189648306b99f24c126a27616f8b1f 2269 2268 2024-06-25T00:09:08Z Aerick 9 wikitext text/x-wiki = Page layout = Instead of headers and links, maybe make it like a category page on Wikipedia: https://en.wikipedia.org/wiki/Category%3AApril . Not sure how to do that here, though. d6447c11d9bdcd4b5b4f1f9f5c963b1931df6591 Supported Hardware 0 1529 2271 2024-06-25T00:10:52Z Aerick 9 Aerick moved page [[Supported Hardware]] to [[Supported hardware]]: Title style wikitext text/x-wiki #REDIRECT [[Supported hardware]] 48628b0fdc17ce8aa4de307fcc51b3f08bd8a41b Talk:Supported hardware 1 1493 2272 2168 2024-06-25T00:10:52Z Aerick 9 Aerick moved page [[Talk:Supported Hardware]] to [[Talk:Supported hardware]]: Title style wikitext text/x-wiki == Professional machines == Would it make sense to create a page for each machine and have the table just link the instructions? For less tech-savvy people especially, I think a whole page dedicated to a machine(s) with pictures and lots of details would be very helpful. Of course, we don't have to create all of them all at once. == NKRO keyboards == Do we really need to list every single keyboard that supports NKRO (or even the ones that don't)? Many of them aren't even in production anymore, and with a million different brands out there, I don't think it's worthwhile to keep it up to date. I also haven't heard of false advertising really being an issue for NKRO; maybe we can just list a few that are relatively easy to get, and keep the advice about searching "NKRO keyboard"? 912671266754d9956ec42796f7c9040c4a7b2af0 2275 2272 2024-06-25T00:17:22Z Aerick 9 wikitext text/x-wiki == Professional machines == Would it make sense to create a page for each machine and have the table just link the instructions? For less tech-savvy people especially, I think a whole page dedicated to a machine(s) with pictures and lots of details would be very helpful. Of course, we don't have to create all of them all at once. I've decided we should just create a page for every single writer Wikipedia style. Each page can have a set up heading, and we can link the relevant set up page to it (make a new one if necessary called "Setting up X steno writer with Plover"). == NKRO keyboards == Do we really need to list every single keyboard that supports NKRO (or even the ones that don't)? Many of them aren't even in production anymore, and with a million different brands out there, I don't think it's worthwhile to keep it up to date. I also haven't heard of false advertising really being an issue for NKRO; maybe we can just list a few that are relatively easy to get, and keep the advice about searching "NKRO keyboard"? Field and I decided to move this to a new page. Most users aren't thinking about buying an NKRO keyboard, so the other concerns are low priority. == Commercially variable writers and stenotypes == Both video game controller, and NKRO keyboards, and DIY machines are in their separate pages. Should the hobbyist machines and the stenotypes also have their own separate page? If so, this page can basically just be a category page. But that is maybe not the most user friendly. We could replace the supported hardware link in the sidebar with "Choosing a steno writer" and use that as the user oriented guide. cdd0624e333c9bbf2820740b795a94ef3c4810f5 Talk:Supported Hardware 1 1530 2273 2024-06-25T00:10:52Z Aerick 9 Aerick moved page [[Talk:Supported Hardware]] to [[Talk:Supported hardware]]: Title style wikitext text/x-wiki #REDIRECT [[Talk:Supported hardware]] 371e2a32faaec9f2050e8adeb6f8277d3286cf24 Wayland 0 1531 2276 2024-06-26T00:16:23Z Aerick 9 Created page with "[[wikipedia:Wayland_(protocol)|Wayland]] is a display server protocol for Linux that is slowly becoming the default on many desktop distributions. It is intended to replace the old [https://en.wikipedia.org/w/index.php?title=X_Window_System X11 Window System] that has been used for decades. Wayland is not currently compatible with Plover. Linux distributions that use GNOME or KDE Plasma 6 use Wayland by default. This includes many of the most popular Linux distributions..." wikitext text/x-wiki [[wikipedia:Wayland_(protocol)|Wayland]] is a display server protocol for Linux that is slowly becoming the default on many desktop distributions. It is intended to replace the old [https://en.wikipedia.org/w/index.php?title=X_Window_System X11 Window System] that has been used for decades. Wayland is not currently compatible with Plover. Linux distributions that use GNOME or KDE Plasma 6 use Wayland by default. This includes many of the most popular Linux distributions such as Ubuntu and Fedora. Luckily, workarounds and other approaches for using steno on Wayland systems are available. == Switch to X11 == This is the easiest workaround to run Plover. This usually involves logging out and selecting the correct session type at the login screen. Unfortunately, it is impossible to provide detailed instructions on this procedure for every single Linux distribution. However, using your favourite search engine, you can finding instructions for your specific setup (try "switching to X11 on <Linux distro>"). Here are two tutorials for the two most popular Linux distributions: * [https://beebom.com/how-switch-between-wayland-xorg-ubuntu/ How to Switch Between Wayland and Xorg in Ubuntu] * [https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/ Configuring Xorg as the default GNOME session] (Fedora) == Plover plugins == There are several plugins with varying degrees of success that have enabled Plover to work on Wayland systems. Some of these include: * <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> (recommended) * <code>[https://github.com/halbGefressen/plover-output-dotool plover-output-dotool]</code> * <code>[https://github.com/svenkeidel/plover-wtype-output/tree/main plover-wtype-output]</code> <code>plover-uinput</code> is recommended as it is the most straightforward to set up. It has also been confirmed to work on GNOME. See the wiki page for set up instructions: [[plover-uinput]]. === Plover on Xwayland === Many applications do not work natively on Wayland, and require Xwayland to run. Plover will sometimes refuse to open on Xwayland systems. If this occurs, run the following command before opening Plover: <pre> xhost +si:localuser:$USER </pre> To run this command automatically when opening Plover, see: [[AppImage integration#Xwayland hack|AppImage integration]] == Javelin == c27292b95598899ea4f9d600a8f5660a7012ee61 Plover-uinput 0 1503 2277 2192 2024-06-26T00:18:03Z Aerick 9 /* Change code to use <pre> blocks */ wikitext text/x-wiki == Background == Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups: * Fedora 40 GNOME 46 == Installation and setup == === Plugin installation === The <code>plover-uinput</code> plugin is not in the plugins manager and has to be installed manually. # Navigate to the folder containing the AppImage. # Run the following command: <pre>./plover-4.0.0rc2+6.g53c416f-x86_64.AppImage -s plover_plugins install plover-uinput</pre> #* Note that the executable may be different if you're running a different version of Plover, or if you're not using the AppImage. # Restart Plover. # Go to <code>Configure → Plugins</code> and check the box next to <code>plover-uinput</code>. For more detailed installation instructions, see the page on [[Plugins#Linux|manually installing plugins]]. === Post-installation setup === Add your user to the <code>input</code> group with the following command: <pre>sudo usermod -aG input $USER</pre> Create a file at <code>/etc/udev/rules.d/90-plover-uinput.rules</code> with the following content: <pre>KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"</pre> For full Unicode support (emoji, accented letters, etc), install <code>ibus</code> or <code>fcitx5</code>. {{Info|text=Distributions running GNOME already have <code>ibus</code> installed.}} '''After setup has been complete, restart your computer to ensure the changes take effect.''' == Troubleshooting == === Verify <code>ibus</code> is working === # On a regular keyboard, press <code>Ctrl+Shift+U</code>. # You should see an underlined <u>u</u> appear. # Type <code>1f990</code> and press enter. # You should see 🦐 appear. 3aee44933e78cac831947e7fc626257a5c04dfd1 2278 2277 2024-06-26T00:18:53Z Aerick 9 /* Background */ wikitext text/x-wiki == Background == Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups: * Debian 12 GNOME 43 * Fedora 40 GNOME 46 == Installation and setup == === Plugin installation === The <code>plover-uinput</code> plugin is not in the plugins manager and has to be installed manually. # Navigate to the folder containing the AppImage. # Run the following command: <pre>./plover-4.0.0rc2+6.g53c416f-x86_64.AppImage -s plover_plugins install plover-uinput</pre> #* Note that the executable may be different if you're running a different version of Plover, or if you're not using the AppImage. # Restart Plover. # Go to <code>Configure → Plugins</code> and check the box next to <code>plover-uinput</code>. For more detailed installation instructions, see the page on [[Plugins#Linux|manually installing plugins]]. === Post-installation setup === Add your user to the <code>input</code> group with the following command: <pre>sudo usermod -aG input $USER</pre> Create a file at <code>/etc/udev/rules.d/90-plover-uinput.rules</code> with the following content: <pre>KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"</pre> For full Unicode support (emoji, accented letters, etc), install <code>ibus</code> or <code>fcitx5</code>. {{Info|text=Distributions running GNOME already have <code>ibus</code> installed.}} '''After setup has been complete, restart your computer to ensure the changes take effect.''' == Troubleshooting == === Verify <code>ibus</code> is working === # On a regular keyboard, press <code>Ctrl+Shift+U</code>. # You should see an underlined <u>u</u> appear. # Type <code>1f990</code> and press enter. # You should see 🦐 appear. 7e593235516dc268a31f0f32ada01cecae0e7752 2279 2278 2024-06-26T00:19:18Z Aerick 9 /* Troubleshooting */ wikitext text/x-wiki == Background == Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups: * Debian 12 GNOME 43 * Fedora 40 GNOME 46 == Installation and setup == === Plugin installation === The <code>plover-uinput</code> plugin is not in the plugins manager and has to be installed manually. # Navigate to the folder containing the AppImage. # Run the following command: <pre>./plover-4.0.0rc2+6.g53c416f-x86_64.AppImage -s plover_plugins install plover-uinput</pre> #* Note that the executable may be different if you're running a different version of Plover, or if you're not using the AppImage. # Restart Plover. # Go to <code>Configure → Plugins</code> and check the box next to <code>plover-uinput</code>. For more detailed installation instructions, see the page on [[Plugins#Linux|manually installing plugins]]. === Post-installation setup === Add your user to the <code>input</code> group with the following command: <pre>sudo usermod -aG input $USER</pre> Create a file at <code>/etc/udev/rules.d/90-plover-uinput.rules</code> with the following content: <pre>KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"</pre> For full Unicode support (emoji, accented letters, etc), install <code>ibus</code> or <code>fcitx5</code>. {{Info|text=Distributions running GNOME already have <code>ibus</code> installed.}} '''After setup has been complete, restart your computer to ensure the changes take effect.''' == Troubleshooting == === Verify ibus is working === # On a regular keyboard, press <code>Ctrl+Shift+U</code>. # You should see an underlined <u>u</u> appear. # Type <code>1f990</code> and press enter. # You should see 🦐 appear. 38fc93c8eda44be91534601e7851055201a2cfb5 2280 2279 2024-06-26T00:19:47Z Aerick 9 /* Installation and setup */ wikitext text/x-wiki == Background == Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups: * Debian 12 GNOME 43 * Fedora 40 GNOME 46 == Installation and setup == === Plugin installation === The <code>plover-uinput</code> plugin is not in the plugins manager and has to be installed manually. # Navigate to the folder containing the AppImage. # Run the following command: <pre>./plover-4.0.0rc2+6.g53c416f-x86_64.AppImage -s plover_plugins install plover-uinput</pre> #* Note that the executable may be different if you're running a different version of Plover, or if you're not using the AppImage. # Restart Plover. # Go to <code>Configure → Plugins</code> and check the box next to <code>plover-uinput</code>. For more detailed installation instructions, see the page on [[Plugins#Linux|manually installing plugins]]. === Post-installation setup === Add your user to the <code>input</code> group with the following command: <pre>sudo usermod -aG input $USER</pre> Create a file at <code>/etc/udev/rules.d/90-plover-uinput.rules</code> with the following content: <pre>KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"</pre> For full Unicode support (emoji, accented letters, etc), install the <code>ibus</code> or <code>fcitx5</code> package. {{Info|text=Distributions running GNOME already have the <code>ibus</code> package installed.}} '''After setup has been complete, restart your computer to ensure the changes take effect.''' == Troubleshooting == === Verify ibus is working === # On a regular keyboard, press <code>Ctrl+Shift+U</code>. # You should see an underlined <u>u</u> appear. # Type <code>1f990</code> and press enter. # You should see 🦐 appear. 25fd0f13947b7fcea1a4093ff1dde296ebbd117b Installation Guide 0 8 2281 2191 2024-06-26T01:28:51Z Aerick 9 /* change wayland link and template to warning */ wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. #* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info). # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. <!--T:12--> {{Warning|text=Plover is not officially supported on systems running Wayland (such as Ubuntu and Fedora by default). See the wiki page on [https://plover.wiki/index.php/Wayland Wayland] for workarounds and other alternatives to Plover.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> == Allow Access to Serial Ports == <!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).''' === Error relating to xcb === <!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up my machine == <!--T:27--> <!--T:28--> Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span> == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> 2cfa84e5fa14e0cec6825e16d6205a8e455787cf 2297 2281 2024-06-26T21:55:20Z Aerick 9 fix headings, link relevant page for writer setup wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. #* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info). # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. <!--T:12--> {{Warning|text=Plover is not officially supported on systems running Wayland (such as Ubuntu and Fedora by default). See the wiki page on [https://plover.wiki/index.php/Wayland Wayland] for workarounds and other alternatives to Plover.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> === Allow Access to Serial Ports ===<!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).''' === Error relating to xcb ===<!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up your writer == <!--T:27--> <!--T:28--> See: [[Setting up your writer with Plover]] == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> 9933a22e6af0457ef4b6a1a2ad323a3001ea0114 2299 2297 2024-06-26T21:58:52Z Aerick 9 /* Install Plover on Linux: typo */ wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. #* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info). # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to use Plover on Linux. <!--T:12--> {{Warning|text=Plover is not officially supported on systems running Wayland (such as Ubuntu and Fedora by default). See the wiki page on [https://plover.wiki/index.php/Wayland Wayland] for workarounds and other alternatives to Plover.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> === Allow Access to Serial Ports ===<!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).''' === Error relating to xcb ===<!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up your writer == <!--T:27--> <!--T:28--> See: [[Setting up your writer with Plover]] == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> 891eb966172e18f298c85a074d314da5ab8f0c21 File:Xwayland error.png 6 1532 2282 2024-06-26T01:31:14Z Aerick 9 wikitext text/x-wiki This error pops up on some systems with Xwayland. 540ea09762f78a82fd12375921b429d34a77e29a Troubleshooting issues 0 14 2283 2252 2024-06-26T01:34:52Z Aerick 9 /* add Xwayland error */ wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate. === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == ===Disappearing plugins manager=== When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing. # In the toolbar, select <code>File → Open Config Folder</code> # Delete the <code>Plugins</code> folder # Uninstall and reinstall Plover ===Plugins not showing in the plugins manager=== Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually Installing Plugins|manually Installing Plugins]]. == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == === No output despite keys showing up in the paper tape === # Enable Plover's output. # Open the paper tape and press some keys. #* If nothing shows up, you will first need to set up your machine. #* If you see letters showing in the paper tape, follow the rest of these instructions. # Open <code>System Settings &#x3E; Privacy & Security &#x3E; Accessibility</code>. #* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!''' # Add the <code>Plover</code> app with the <code>+</code> button. === Incompatibility with Karabiner Elements === Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover. === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == === Missing or jumbled output === IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>. [[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]] === Linux dynamic keyboard layout switching is not working === Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298]. === Delayed/slow output when using gnome-shell and the keyboard machine === It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. === No authorization protocol error === If the following error occurs while trying to run Plover, your system is using Xwayland. See the wiki page on [[Wayland#Plover on Xwayland|Wayland]] for a fix. [[File:Xwayland error.png|alt=Xwayland error that pops up when trying to run Plover|center|thumb|This error occurs on some systems running Wayland.]] === Plover not working on Wayland === Plover does not officially support Wayland. See the wiki page on [[Wayland]] for workarounds and alternatives to Plover. 02d58f27355ddece195ea62ef8f86df0020d646f 2298 2283 2024-06-26T21:57:20Z Aerick 9 /* Linux */ wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate. === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == ===Disappearing plugins manager=== When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing. # In the toolbar, select <code>File → Open Config Folder</code> # Delete the <code>Plugins</code> folder # Uninstall and reinstall Plover ===Plugins not showing in the plugins manager=== Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually Installing Plugins|manually Installing Plugins]]. == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == === No output despite keys showing up in the paper tape === # Enable Plover's output. # Open the paper tape and press some keys. #* If nothing shows up, you will first need to set up your machine. #* If you see letters showing in the paper tape, follow the rest of these instructions. # Open <code>System Settings &#x3E; Privacy & Security &#x3E; Accessibility</code>. #* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!''' # Add the <code>Plover</code> app with the <code>+</code> button. === Incompatibility with Karabiner Elements === Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover. === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == === Permission denied with Gemini PR or TX Bolt === ''See: [[Installation Guide#Allow Access to Serial Ports|allow access to serial ports]].'' === Missing or jumbled output === IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>. [[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]] === Linux dynamic keyboard layout switching is not working === Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298]. === Delayed/slow output when using gnome-shell and the keyboard machine === It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. === No authorization protocol error === If the following error occurs while trying to run Plover, your system is using Xwayland. See the wiki page on [[Wayland#Plover on Xwayland|Wayland]] for a fix. [[File:Xwayland error.png|alt=Xwayland error that pops up when trying to run Plover|center|thumb|This error occurs on some systems running Wayland.]] === Plover not working on Wayland === Plover does not officially support Wayland. See the wiki page on [[Wayland]] for workarounds and alternatives to Plover. a412e956c69e1e26ffdb2b0b4c3a9ad372b8e0c2 Wayland 0 1531 2284 2276 2024-06-26T01:55:43Z Aerick 9 /* Plover on Xwayland */ wikitext text/x-wiki [[wikipedia:Wayland_(protocol)|Wayland]] is a display server protocol for Linux that is slowly becoming the default on many desktop distributions. It is intended to replace the old [https://en.wikipedia.org/w/index.php?title=X_Window_System X11 Window System] that has been used for decades. Wayland is not currently compatible with Plover. Linux distributions that use GNOME or KDE Plasma 6 use Wayland by default. This includes many of the most popular Linux distributions such as Ubuntu and Fedora. Luckily, workarounds and other approaches for using steno on Wayland systems are available. == Switch to X11 == This is the easiest workaround to run Plover. This usually involves logging out and selecting the correct session type at the login screen. Unfortunately, it is impossible to provide detailed instructions on this procedure for every single Linux distribution. However, using your favourite search engine, you can finding instructions for your specific setup (try "switching to X11 on <Linux distro>"). Here are two tutorials for the two most popular Linux distributions: * [https://beebom.com/how-switch-between-wayland-xorg-ubuntu/ How to Switch Between Wayland and Xorg in Ubuntu] * [https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/ Configuring Xorg as the default GNOME session] (Fedora) == Plover plugins == There are several plugins with varying degrees of success that have enabled Plover to work on Wayland systems. Some of these include: * <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> (recommended) * <code>[https://github.com/halbGefressen/plover-output-dotool plover-output-dotool]</code> * <code>[https://github.com/svenkeidel/plover-wtype-output/tree/main plover-wtype-output]</code> <code>plover-uinput</code> is recommended as it is the most straightforward to set up. It has also been confirmed to work on GNOME. See the wiki page for set up instructions: [[plover-uinput]]. === Xwayland === Many applications do not work natively on Wayland, and require Xwayland to run. Plover will sometimes refuse to open on Xwayland systems. If this occurs, run the following command before opening Plover: <pre> xhost +si:localuser:$USER </pre> To run this command automatically when opening Plover, see: [[AppImage integration#Automatically run Xwayland command|AppImage integration]] == Javelin == 499cf22a9782d8561ee789df338c81a6b48c69c6 2290 2284 2024-06-26T02:22:49Z Aerick 9 /* Javelin */ wikitext text/x-wiki [[wikipedia:Wayland_(protocol)|Wayland]] is a display server protocol for Linux that is slowly becoming the default on many desktop distributions. It is intended to replace the old [https://en.wikipedia.org/w/index.php?title=X_Window_System X11 Window System] that has been used for decades. Wayland is not currently compatible with Plover. Linux distributions that use GNOME or KDE Plasma 6 use Wayland by default. This includes many of the most popular Linux distributions such as Ubuntu and Fedora. Luckily, workarounds and other approaches for using steno on Wayland systems are available. == Switch to X11 == This is the easiest workaround to run Plover. This usually involves logging out and selecting the correct session type at the login screen. Unfortunately, it is impossible to provide detailed instructions on this procedure for every single Linux distribution. However, using your favourite search engine, you can finding instructions for your specific setup (try "switching to X11 on <Linux distro>"). Here are two tutorials for the two most popular Linux distributions: * [https://beebom.com/how-switch-between-wayland-xorg-ubuntu/ How to Switch Between Wayland and Xorg in Ubuntu] * [https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/ Configuring Xorg as the default GNOME session] (Fedora) == Plover plugins == There are several plugins with varying degrees of success that have enabled Plover to work on Wayland systems. Some of these include: * <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> (recommended) * <code>[https://github.com/halbGefressen/plover-output-dotool plover-output-dotool]</code> * <code>[https://github.com/svenkeidel/plover-wtype-output/tree/main plover-wtype-output]</code> <code>plover-uinput</code> is recommended as it is the most straightforward to set up. It has also been confirmed to work on GNOME. See the wiki page for set up instructions: [[plover-uinput]]. === Xwayland === Many applications do not work natively on Wayland, and require Xwayland to run. Plover will sometimes refuse to open on Xwayland systems. If this occurs, run the following command before opening Plover: <pre> xhost +si:localuser:$USER </pre> To run this command automatically when opening Plover, see: [[AppImage integration#Automatically run Xwayland command|AppImage integration]] == Javelin == Javelin is a keyboard firmware that features an embedded steno engine ("plug and play stenography"). It bypasses the need to install Plover (or any app) on the host machine. It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available steno writers]]. See the wiki page on [[Javelin]] for more details. 1bd07cdd4772675bdaa900cc4f786c9d41db4d6d 2310 2290 2024-07-19T02:03:54Z Aerick 9 /* Xwayland */ wikitext text/x-wiki [[wikipedia:Wayland_(protocol)|Wayland]] is a display server protocol for Linux that is slowly becoming the default on many desktop distributions. It is intended to replace the old [https://en.wikipedia.org/w/index.php?title=X_Window_System X11 Window System] that has been used for decades. Wayland is not currently compatible with Plover. Linux distributions that use GNOME or KDE Plasma 6 use Wayland by default. This includes many of the most popular Linux distributions such as Ubuntu and Fedora. Luckily, workarounds and other approaches for using steno on Wayland systems are available. == Switch to X11 == This is the easiest workaround to run Plover. This usually involves logging out and selecting the correct session type at the login screen. Unfortunately, it is impossible to provide detailed instructions on this procedure for every single Linux distribution. However, using your favourite search engine, you can finding instructions for your specific setup (try "switching to X11 on <Linux distro>"). Here are two tutorials for the two most popular Linux distributions: * [https://beebom.com/how-switch-between-wayland-xorg-ubuntu/ How to Switch Between Wayland and Xorg in Ubuntu] * [https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/ Configuring Xorg as the default GNOME session] (Fedora) == Plover plugins == There are several plugins with varying degrees of success that have enabled Plover to work on Wayland systems. Some of these include: * <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> (recommended) * <code>[https://github.com/halbGefressen/plover-output-dotool plover-output-dotool]</code> * <code>[https://github.com/svenkeidel/plover-wtype-output/tree/main plover-wtype-output]</code> <code>plover-uinput</code> is recommended as it is the most straightforward to set up. It has also been confirmed to work on GNOME. See the wiki page for set up instructions: [[plover-uinput]]. === Xwayland === [[File:Xwayland error.png|alt=Xwayland error that pops up when trying to run Plover|thumb|This error occurs on some systems that use xwayland.|408x408px]]Many applications do not work natively on Wayland, and require Xwayland to run. Plover may refuse to open on Xwayland systems and will produce the following error: <pre> Xlib.error.DisplayConnectionError: Can't connect to display ":0": b'Authorization required, but no authorization protocol specified\n' </pre> If this occurs, run the following command before opening Plover: <pre> xhost +si:localuser:$USER </pre> To run this command automatically when opening Plover, see: [[AppImage integration#Automatically run Xwayland command|AppImage integration]] == Javelin == Javelin is a keyboard firmware that features an embedded steno engine ("plug and play stenography"). It bypasses the need to install Plover (or any app) on the host machine. It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available steno writers]]. See the wiki page on [[Javelin]] for more details. 6e28e5e63f6b1003052cd895ca8a0a7f62417ead AppImage integration 0 1533 2285 2024-06-26T02:00:04Z Aerick 9 Created page with "The only officially supported method for "installing" Plover on Linux is to use the AppImage. This file doesn't install anything, but is instead an executable file that can be placed anywhere in your system. Therefore, it may not show up in your applications menu (particularly if does not index arbitrary files on your computer). This can be addressed by using a <code>.desktop</code> file. == <code>Plover.desktop</code> == Follow these steps to add Plover to your applica..." wikitext text/x-wiki The only officially supported method for "installing" Plover on Linux is to use the AppImage. This file doesn't install anything, but is instead an executable file that can be placed anywhere in your system. Therefore, it may not show up in your applications menu (particularly if does not index arbitrary files on your computer). This can be addressed by using a <code>.desktop</code> file. == <code>Plover.desktop</code> == Follow these steps to add Plover to your applications menu: # Move the Plover AppImage to your Desktop folder. # Create a file at <code>~/.local/share/applications/plover.desktop</code> with the content below. # Download the [https://raw.githubusercontent.com/openstenoproject/plover/main/plover/assets/plover-icon.svg Plover icon] and save it to your Desktop (optional) # Log out and log back in. <code>~/.local/share/applications/plover.desktop</code> <pre> [Desktop Entry] Type=Application Terminal=false Exec=$HOME/Desktop/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Name=Plover Icon=$HOME/Desktop/plover-icon.svg Categories=Utility;Accessibility; Comment=Stenographic Input Tool Keywords=steno;input;keyboard; X-Unity-IconBackgroundColor=#414F4C </pre> === Automatically run Xwayland command === For running Plover under [[Wayland#Xwayland|Xwayland]], you will first have to create a script to run the command and start Plover. <code>~/Desktop/plover-wayland.sh</code> <pre> #!/bin/bash xhost +si:localuser:$USER $HOME/Desktop/Plover-4.0.0rc+6.g53c416f-x86_64.AppImage </pre> Mark the script as executable by running <code>chmod +x ~/Desktop/plover-wayland.sh</code>. Now, have the desktop file call the script instead of the Plover AppImage. <code>~/.local/share/applications</code> <pre> [Desktop Entry] Type=Application Terminal=false Exec=$HOME/Desktop/plover-wayland.sh Name=Plover Icon=$HOME/Desktop/plover-icon.svg Categories=Utility;Accessibility; Comment=Stenographic Input Tool Keywords=steno;input;keyboard; X-Unity-IconBackgroundColor=#414F4C </pre> ee07e0babb4830a748f0a82e516e6b7d6df0f220 Setting up a hobbyist writer with Plover 0 1504 2286 2199 2024-06-26T02:08:39Z Aerick 9 Remove background header (moves background information to before table of contents) wikitext text/x-wiki Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time. == Video summary == The following narrated video goes over the main method and trial and error method described below: <youtube>2tp_hSVCKN8</youtube> == Main method == This method involves determining the serial port for Plover to listen to. # In Plover's main window, go to <code>Configure → Machine</code> and change the machine to Gemini PR. # With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button. #* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]] # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Open the <code>Port</code> drop down menu. #* If you see your device name show up, select it. #* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]] # Press <code>Apply</code> and <code>OK</code> # Test that your machine is working #* Open the paper tape (<code>Tools → Paper tape</code>) #* Press some keys on your machine #* Verify that they show up in the paper tape == Trial and error method == Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try. # In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Select the first option in the <code>Port</code> drop down menu. # Press <code>Apply</code> and <code>OK</code> # Open the paper tape and press some keys on your machine. #* If you see output in the paper tape, you are done. #* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu. == Serial protocol limitations == If you sleep and wake up your computer, or you unplug and replug your machine, your steno keyboard will disconnect. You can try pressing the <code>Reconnect Machine</code> button. [[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]] If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again. === Autoreconnect === On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. For more details, see the [[auto reconnect]] page. fddd00d1b5765734736c650dafa667c0c0528a85 2287 2286 2024-06-26T02:12:52Z Aerick 9 /* Add information on refresh button and connected indicator */ wikitext text/x-wiki Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time. == Video summary == The following narrated video goes over the main method and trial and error method described below: <youtube>2tp_hSVCKN8</youtube> == Main method == This method involves determining the serial port for Plover to listen to. # In Plover's main window, go to <code>Configure → Machine</code> and change the machine to Gemini PR. # With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button. #* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]] # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Open the <code>Port</code> drop down menu. #* If you see your device name show up, select it. #* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]] # Press <code>Apply</code> and <code>OK</code> # Test that your machine is working #* Open the paper tape (<code>Tools → Paper tape</code>) #* Press some keys on your machine #* Verify that they show up in the paper tape == Trial and error method == Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try. # In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Select the first option in the <code>Port</code> drop down menu. # Press <code>Apply</code> and <code>OK</code> # Open the paper tape and press some keys on your machine. #* If you see output in the paper tape, you are done. #* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu. == Serial protocol limitations == === Function of the refresh button === Pressing the <code>Refresh</code>/<code>Scan</code> button merely makes Plover search for new devices—it does not necessarily select the correct device. This is why the process of connecting a writer to Plover is a little tricky. He === Connected/disconnected indicator === Plover will report that it is "connected" to a device, but this may not necessarily be the correct one. If Plover is not receiving the key presses on a keyboard (despite saying "connected"), this means that the selected port is wrong. Go back to <code>Configure → Machine</code> and try a different port in the drop down menu. === Resuming from sleep/disconnect === If you sleep and wake up your computer, or you unplug and replug your machine, your steno keyboard will disconnect. You can try pressing the <code>Reconnect Machine</code> button. [[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]] If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again. ==== Autoreconnect ==== On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. For more details, see the [[auto reconnect]] page. 98c8269046de7b624ee29dd341393af673c99c62 2288 2287 2024-06-26T02:14:40Z Aerick 9 /* Clean up links in auto reconnect section, rename heading */ wikitext text/x-wiki Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time. == Video summary == The following narrated video goes over the main method and trial and error method described below: <youtube>2tp_hSVCKN8</youtube> == Main method == This method involves determining the serial port for Plover to listen to. # In Plover's main window, go to <code>Configure → Machine</code> and change the machine to Gemini PR. # With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button. #* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]] # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Open the <code>Port</code> drop down menu. #* If you see your device name show up, select it. #* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]] # Press <code>Apply</code> and <code>OK</code> # Test that your machine is working #* Open the paper tape (<code>Tools → Paper tape</code>) #* Press some keys on your machine #* Verify that they show up in the paper tape == Trial and error method == Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try. # In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Select the first option in the <code>Port</code> drop down menu. # Press <code>Apply</code> and <code>OK</code> # Open the paper tape and press some keys on your machine. #* If you see output in the paper tape, you are done. #* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu. == Serial protocol limitations == === Function of the refresh button === Pressing the <code>Refresh</code>/<code>Scan</code> button merely makes Plover search for new devices—it does not necessarily select the correct device. This is why the process of connecting a writer to Plover is a little tricky. He === Connected/disconnected indicator === Plover will report that it is "connected" to a device, but this may not necessarily be the correct one. If Plover is not receiving the key presses on a keyboard (despite saying "connected"), this means that the selected port is wrong. Go back to <code>Configure → Machine</code> and try a different port in the drop down menu. === Resuming from sleep/disconnect === If you sleep and wake up your computer, or you unplug and replug your machine, your steno keyboard will disconnect. You can try pressing the <code>Reconnect Machine</code> button. [[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]] If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again. ==== Auto reconnect ==== On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with a plugin. See the wiki page on [[auto reconnect]]. e68988190204994f1f69f7e0a177f326b1aba19a 2300 2288 2024-06-26T21:59:58Z Aerick 9 add note on serial port permissions on Linux wikitext text/x-wiki Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time. For Linux users, ensure that you have [[Installation Guide#Allow Access to Serial Ports|access to serial ports]]. == Video summary == The following narrated video goes over the main method and trial and error method described below: <youtube>2tp_hSVCKN8</youtube> == Main method == This method involves determining the serial port for Plover to listen to. # In Plover's main window, go to <code>Configure → Machine</code> and change the machine to Gemini PR. # With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button. #* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]] # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Open the <code>Port</code> drop down menu. #* If you see your device name show up, select it. #* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]] # Press <code>Apply</code> and <code>OK</code> # Test that your machine is working #* Open the paper tape (<code>Tools → Paper tape</code>) #* Press some keys on your machine #* Verify that they show up in the paper tape == Trial and error method == Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try. # In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR. # Plug in your machine. # Press the <code>Scan</code> or <code>Refresh</code> button. # Select the first option in the <code>Port</code> drop down menu. # Press <code>Apply</code> and <code>OK</code> # Open the paper tape and press some keys on your machine. #* If you see output in the paper tape, you are done. #* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu. == Serial protocol limitations == === Function of the refresh button === Pressing the <code>Refresh</code>/<code>Scan</code> button merely makes Plover search for new devices—it does not necessarily select the correct device. This is why the process of connecting a writer to Plover is a little tricky. He === Connected/disconnected indicator === Plover will report that it is "connected" to a device, but this may not necessarily be the correct one. If Plover is not receiving the key presses on a keyboard (despite saying "connected"), this means that the selected port is wrong. Go back to <code>Configure → Machine</code> and try a different port in the drop down menu. === Resuming from sleep/disconnect === If you sleep and wake up your computer, or you unplug and replug your machine, your steno keyboard will disconnect. You can try pressing the <code>Reconnect Machine</code> button. [[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]] If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again. ==== Auto reconnect ==== On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with a plugin. See the wiki page on [[auto reconnect]]. 154e3cb3f9418ef52fa22c54221b365831a105b7 Auto reconnect 0 1499 2289 2194 2024-06-26T02:16:18Z Aerick 9 /* rename background heading, move background info to above table of contents */ wikitext text/x-wiki For steno writers that use serial protocols such as Gemini PR or TX Bolt, Plover requires the user to manually press the reconnect machine button if the writer is unplugged and replugged. The <code>plover-auto-reconnect-machine</code> plugin can handle this automatically on some setups. However, if the serial port changes between plugs, please note that this plugin will not work. == Checking usability of plugin == To see if this plugin is usable with your setup, go to <code>Configure → Machine</code> and follow the instructions below: # Open the <code>Port</code> drop down menu. # Take note of the serial port that your machine is using. # Unplug your writer. # Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover). # Plug in your writer. # Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover). # Open the <code>Port</code> drop down menu. # Check if the new serial port is the same. #* If they are the same, you can proceed with this page to set up auto reconnect. #* If they are different, auto reconnect may not work. [[File:Auto-reconnect-test.png|alt=Plover configuration machine tab with refresh button highlighted. Drop down menu options highlighted.|center|thumb|708x708px|Left: <code>Refresh</code>/<code>Scan</code> button. Right: drop down menu options.]] == Plugin installation == # Open the plugins manager. # Find <code>plover-auto-reconnect-machine</code> in the list. # Press <code>Install/Update</code> # Proceed with the installation. # Press <code>Restart</code> after it is finished. For more detailed steps for installation, see the [[Plugins#How to Install Plugins|plugins page]]. == Plugin setup == # In Plover's main window, go to <code>Configure → Plugins</code>. # Check the box next to <code>plover-auto-reconnect-machine</code>. # Press <code>Apply</code> and then <code>OK</code>. [[File:Plover-auto-reconnect-plugin-configuration.png|alt=Plover plugins tab with the plover-auto-reconnect-machine plugin check box.|center|thumb|502x502px|Check the box to enable the <code>plover-auto-reconnect-machine</code> plugin.]] == Verify it works == # Make sure your machine is set up correctly. # Write some words to test your configuration. # Unplug your writer. # Plug it back in and wait a few seconds. # Plover's status should go from <code>Disconnected</code>[[File:State-disconnected.svg|frameless|28x28px]] to <code>Connected</code>[[File:State-enabled.svg|frameless|28x28px]] # Write some words to see if it works. [[Category:Plover]] 000801ab1c773c8dbce6995420ec594c58f6317e Javelin 0 1523 2291 2253 2024-06-26T02:31:52Z Aerick 9 wikitext text/x-wiki Javelin is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available hobbyist writers]]. == Features == <nowiki>#</nowiki>STKPWHRAO*EUFRPBLGTSDZ 971aacb3cc37beb905b57bda4fde33ef0db5de08 2305 2291 2024-07-13T02:20:28Z Aerick 9 Expand the page wikitext text/x-wiki [https://lim.au/#/software/javelin-steno Javelin] is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available hobbyist writers]]. == Features == This section covers some noteworthy features of Javelin. If you wish to view all of the available settings and features, have a look through the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. You may have to select <code>Show expert options</code> to find the option you are looking for. === Embedded steno engine === ==== Compatible host devices ==== Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input. ==== Dictionary management ==== Adding your own arbitrary JSON dictionaries is fully supported. Using the web tools or custom defined outlines, it is possible to temporarily disable dictionaries. [[File:Javelin dictionaries section.png|center|thumb|1065x1065px|Several programmatic dictionaries are implemented in Javelin, and arbitrary JSON dictionaries can be added.]] Compared to Plover, however, it is not possible to add your own programmatic dictionaries (such as python dictionaries) using the firmware builder. Some popular python dictionaries have been implemented in Javelin, such as Emily's symbols and Jeff's phrasing. However, there is no officially documented way to write a programmatic dictionary for Javelin (though it is technically possible). ==== Non-WSI layouts ==== It is not currently possible to use a non-WSI layout with Javelin (this may change in the future). ==== Unicode characters ==== Javelin supports several methods to write Unicode characters, which are all dependent on the host device. Using the settings in the web tools, the Unicode mode can be set to allow writing such characters on Linux, macOS, and Windows. Using the firmware builder, the default Unicode mode can be specified. [[File:Javelin keyboard emulation section.png|center|thumb|1021x1021px|All the methods that Javelin supports to write Unicode characters.]] ==== Key map customization ==== Like with Plover, the key map can be set in Javelin to allow for tweaks such as top `S` number key, or changing the placement of the thumber keys on various boards. [[File:Javelin key map section.png|center|thumb|1009x1009px|Javelin supports setting an arbitrary key map.]] ==== Adding translations ==== Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover. ==== First-up and chord repeat ==== Using the firmware builder, it is trivial to add first-up chord send or chord repeat functionality to your board. [[File:Javelin first up-chord repeat section.png|center|thumb|1015x1015px|Javelin makes it very easy to add first-up/chord repeat compared to other keyboard firmwares.]] === Layout editor === Javelin has a GUI for editing the layout of your keyboard. It is a very powerful tool, allowing you to customize any aspect of the layout. 43068394250b471c117efdc0fca48bf2861c2d44 2306 2305 2024-07-13T02:48:39Z Aerick 9 Add web tools section and error for connecting to Linux wikitext text/x-wiki [https://lim.au/#/software/javelin-steno Javelin] is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available hobbyist writers]]. == Features == This section covers some noteworthy features of Javelin. If you wish to view all of the available settings and features, have a look through the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. You may have to select <code>Show expert options</code> to find the option you are looking for. === Embedded steno engine === ==== Compatible host devices ==== Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input. ==== Dictionary management ==== Adding your own arbitrary JSON dictionaries is fully supported. Using the web tools or custom defined outlines, it is possible to temporarily disable dictionaries. [[File:Javelin dictionaries section.png|center|thumb|1065x1065px|Several programmatic dictionaries are implemented in Javelin, and arbitrary JSON dictionaries can be added.]] Compared to Plover, however, it is not possible to add your own programmatic dictionaries (such as python dictionaries) using the firmware builder. Some popular python dictionaries have been implemented in Javelin, such as Emily's symbols and Jeff's phrasing. However, there is no officially documented way to write a programmatic dictionary for Javelin (though it is technically possible). ==== Non-WSI layouts ==== It is not currently possible to use a non-WSI layout with Javelin (this may change in the future). ==== Unicode characters ==== Javelin supports several methods to write Unicode characters, which are all dependent on the host device. Using the settings in the web tools, the Unicode mode can be set to allow writing such characters on Linux, macOS, and Windows. Using the firmware builder, the default Unicode mode can be specified. [[File:Javelin keyboard emulation section.png|center|thumb|1021x1021px|All the methods that Javelin supports to write Unicode characters.]] ==== Key map customization ==== Like with Plover, the key map can be set in Javelin to allow for tweaks such as top `S` number key, or changing the placement of the thumber keys on various boards. [[File:Javelin key map section.png|center|thumb|1009x1009px|Javelin supports setting an arbitrary key map.]] ==== Adding translations ==== Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover. ==== First-up and chord repeat ==== Using the firmware builder, it is trivial to add first-up chord send or chord repeat functionality to your board. [[File:Javelin first up-chord repeat section.png|center|thumb|1015x1015px|Javelin makes it very easy to add first-up/chord repeat compared to other keyboard firmwares.]] === Layout editor === Javelin has a GUI for editing the layout of your keyboard. It is a very powerful tool, allowing you to customize any aspect of the layout. === Web tools === Javelin provides a set of web tools for learning aids, and tweaking settings. ==== Cannot connect to device on Linux ==== If you see <code>Error connecting</code> while trying to connect to your device with the web tools, you need to add a udev rule. Create a file at <code>/etc/udev/rules.d/99-keyboard-javelin.rules</code> with the following content: <pre>SUBSYSTEM=="hidraw", ATTRS{idVendor}=="9000", ATTRS{idProduct}=="400d", MODE="0666"</pre>After creating the file, reload the rule with the following commands:<pre>sudo udevadm control --reload-rules sudo udevadm trigger</pre>{{Info|text=If this does not work, try replacing <code>9000</code> with <code>feed</code>.}} 35baf72d1e6806af61e27d3fe9da46167ff84d51 2309 2306 2024-07-13T03:19:24Z Aerick 9 Add video demos of the embedded steno engine and add section on compatible steno protocols wikitext text/x-wiki [https://lim.au/#/software/javelin-steno Javelin] is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available hobbyist writers]]. == Features == This section covers some noteworthy features of Javelin. If you wish to view all of the available settings and features, have a look through the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. You may have to select <code>Show expert options</code> to find the option you are looking for. === Embedded steno engine === ==== Compatible host devices ==== Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input. [[File:Javelin embedded steno engine on Pixel 4.mp4|center|thumb|508x508px|Demo of Javelin's embedded steno engine on an Android phone.]] ==== Dictionary management ==== Adding your own arbitrary JSON dictionaries is fully supported. Using the web tools or custom defined outlines, it is possible to temporarily disable dictionaries. [[File:Javelin dictionaries section.png|center|thumb|1065x1065px|Several programmatic dictionaries are implemented in Javelin, and arbitrary JSON dictionaries can be added.]] Compared to Plover, however, it is not possible to add your own programmatic dictionaries (such as python dictionaries) using the firmware builder. Some popular python dictionaries have been implemented in Javelin, such as Emily's symbols and Jeff's phrasing. However, there is no officially documented way to write a programmatic dictionary for Javelin (though it is technically possible). ==== Non-WSI layouts ==== It is not currently possible to use a non-WSI layout with Javelin (this may change in the future). ==== Unicode characters ==== Javelin supports several methods to write Unicode characters, which are all dependent on the host device. Using the settings in the web tools, the Unicode mode can be set to allow writing such characters on Linux, macOS, and Windows. Using the firmware builder, the default Unicode mode can be specified. [[File:Javelin keyboard emulation section.png|center|thumb|1021x1021px|All the methods that Javelin supports to write Unicode characters.]] ==== Key map customization ==== Like with Plover, the key map can be set in Javelin to allow for tweaks such as top `S` number key, or changing the placement of the thumber keys on various boards. [[File:Javelin key map section.png|center|thumb|1009x1009px|Javelin supports setting an arbitrary key map.]] ==== Adding translations ==== Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover. [[File:Adding translation with Javelin's TUI.mp4|center|thumb|562x562px|On-the-fly translations can be added with Javelin. In this case, <nowiki><code>POEUT</code></nowiki> is a free outline, and "potato" is being fingerspelled for the translation.]] ==== First-up and chord repeat ==== Using the firmware builder, it is trivial to add first-up chord send or chord repeat functionality to your board. [[File:Javelin first up-chord repeat section.png|center|thumb|1015x1015px|Javelin makes it very easy to add first-up/chord repeat compared to other keyboard firmwares.]] === Layout editor === Javelin has a GUI for editing the layout of your keyboard. It is a very powerful tool, allowing you to customize any aspect of the layout. === Web tools === Javelin provides a set of web tools for learning aids, and tweaking settings. ==== Cannot connect to device on Linux ==== If you see <code>Error connecting</code> while trying to connect to your device with the web tools, you need to add a udev rule. Create a file at <code>/etc/udev/rules.d/99-keyboard-javelin.rules</code> with the following content: <pre>SUBSYSTEM=="hidraw", ATTRS{idVendor}=="9000", ATTRS{idProduct}=="400d", MODE="0666"</pre>After creating the file, reload the rule with the following commands:<pre>sudo udevadm control --reload-rules sudo udevadm trigger</pre>{{Info|text=If this does not work, try replacing <code>9000</code> with <code>feed</code>.}} === Compatibility with existing steno protocols === Instead of outputting regular text, Javelin is also capable of outputting steno protocols such as Gemini PR or Plover HID. The Default Plover and Default Lapwing firmware files already have such layers configured. This is useful if you plan to still use Plover. bc9bee8746ec7ee6f7afd8e6bf768e2f4a31fdae 2355 2309 2024-08-07T17:03:27Z Aerick 9 wikitext text/x-wiki [https://lim.au/#/software/javelin-steno Javelin] is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available hobbyist writers]]. == Updating your writer to use Javelin == To use Javelin on your hobbyist steno writer, you will need to update the firmware. The general process involves downloading a Javelin firmware file, and copying it to your device. The following video goes through this process at 1:06: <youtube>nLBu5DZI4fY</youtube> {{Info|text=You will need a computer running a desktop OS (e.g. Linux, macOS, Windows) to update your steno writer's firmware. This will not work on an Android or iOS device.}} === 1. Select your steno writer === Firmware files can be downloaded from the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. Before proceeding, make sure the correct device is selected. [[File:Javelin firmware builder device.png|center|thumb|420x420px|Make sure you have selected the right device before proceeding.]] === 2. Download a firmware file === ==== 2a. New users ==== For new users, download either the <code>Default Plover</code> or <code>Default Lapwing</code> files depending on which theory you want to use. [[File:Javelin Firmware Builder Default.png|center|thumb|420x420px|Download either <code>Default Plover</code> or <code>Default Lapwing</code>.]] ==== 2b. Advanced users ==== If you wish to customize your Javelin configuration, select the options you want, and download either incremental or standalone depending on your needs. === 3. Copying the file to your device === The instructions to update your device differ depending on the board you are using; make sure you have selected the right board as outlined in step 1. You can find instructions to update your file's firmware at the bottom of the page. In general, most boards require you to hold down a button while plugging it in, and copying the firmware file you downloaded (in step 2) to the new drive. == Features == This section covers some noteworthy features of Javelin. If you wish to view all of the available settings and features, have a look through the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. You may have to select <code>Show expert options</code> to find the option you are looking for. === Embedded steno engine === ==== Compatible host devices ==== Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input. [[File:Javelin embedded steno engine on Pixel 4.mp4|center|thumb|508x508px|Demo of Javelin's embedded steno engine on an Android phone.]] ==== Dictionary management ==== Adding your own arbitrary JSON dictionaries is fully supported. Using the web tools or custom defined outlines, it is possible to temporarily disable dictionaries. [[File:Javelin dictionaries section.png|center|thumb|1065x1065px|Several programmatic dictionaries are implemented in Javelin, and arbitrary JSON dictionaries can be added.]] Compared to Plover, however, it is not possible to add your own programmatic dictionaries (such as python dictionaries) using the firmware builder. Some popular python dictionaries have been implemented in Javelin, such as Emily's symbols and Jeff's phrasing. However, there is no officially documented way to write a programmatic dictionary for Javelin (though it is technically possible). ==== Non-WSI layouts ==== It is not currently possible to use a non-WSI layout with Javelin (this may change in the future). ==== Unicode characters ==== Javelin supports several methods to write Unicode characters, which are all dependent on the host device. Using the settings in the web tools, the Unicode mode can be set to allow writing such characters on Linux, macOS, and Windows. Using the firmware builder, the default Unicode mode can be specified. [[File:Javelin keyboard emulation section.png|center|thumb|1021x1021px|All the methods that Javelin supports to write Unicode characters.]] ==== Key map customization ==== Like with Plover, the key map can be set in Javelin to allow for tweaks such as top `S` number key, or changing the placement of the thumber keys on various boards. [[File:Javelin key map section.png|center|thumb|1009x1009px|Javelin supports setting an arbitrary key map.]] ==== Adding translations ==== Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover. [[File:Adding translation with Javelin's TUI.mp4|center|thumb|562x562px|On-the-fly translations can be added with Javelin. In this case, <nowiki><code>POEUT</code></nowiki> is a free outline, and "potato" is being fingerspelled for the translation.]] ==== First-up and chord repeat ==== Using the firmware builder, it is trivial to add first-up chord send or chord repeat functionality to your board. [[File:Javelin first up-chord repeat section.png|center|thumb|1015x1015px|Javelin makes it very easy to add first-up/chord repeat compared to other keyboard firmwares.]] === Layout editor === Javelin has a GUI for editing the layout of your keyboard. It is a very powerful tool, allowing you to customize any aspect of the layout. === Web tools === Javelin provides a set of web tools for learning aids, and tweaking settings. ==== Cannot connect to device on Linux ==== If you see <code>Error connecting</code> while trying to connect to your device with the web tools, you need to add a udev rule. Create a file at <code>/etc/udev/rules.d/99-keyboard-javelin.rules</code> with the following content: <pre>SUBSYSTEM=="hidraw", ATTRS{idVendor}=="9000", ATTRS{idProduct}=="400d", MODE="0666"</pre>After creating the file, reload the rule with the following commands:<pre>sudo udevadm control --reload-rules sudo udevadm trigger</pre>{{Info|text=If this does not work, try replacing <code>9000</code> with <code>feed</code>.}} === Compatibility with existing steno protocols === Instead of outputting regular text, Javelin is also capable of outputting steno protocols such as Gemini PR or Plover HID. The Default Plover and Default Lapwing firmware files already have such layers configured. This is useful if you plan to still use Plover. 681d41e30390466b72c4b6dd89f266af61957ca7 2356 2355 2024-08-07T17:11:32Z Aerick 9 wikitext text/x-wiki [https://lim.au/#/software/javelin-steno Javelin] is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available hobbyist writers]]. == Updating your writer to use Javelin == To use Javelin on your hobbyist steno writer, you will need to update the firmware. The general process involves downloading a Javelin firmware file, and copying it to your device. The following video goes through this process at 1:06: <youtube>nLBu5DZI4fY</youtube> {{Info|text=You will need a computer running a desktop OS (e.g. Linux, macOS, Windows) to update your steno writer's firmware. This will not work on an Android or iOS device.}} === 1. Select your steno writer === Firmware files can be downloaded from the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. Before proceeding, make sure the correct device is selected. [[File:Javelin firmware builder device.png|center|thumb|420x420px|Make sure you have selected the right device before proceeding.]] === 2. Download a firmware file === ==== 2a. New users ==== For new users, download either the <code>Default Plover</code> or <code>Default Lapwing</code> files depending on which theory you want to use. [[File:Javelin Firmware Builder Default.png|center|thumb|420x420px|Download either <code>Default Plover</code> or <code>Default Lapwing</code>.]] ==== 2b. Advanced users ==== If you wish to customize your Javelin configuration, select the options you want, and download either incremental or standalone depending on your needs. === 3. Copying the file to your device === The instructions to update your device differ depending on the board you are using; make sure you have selected the right board as outlined in step 1. You can find instructions to update your file's firmware at the bottom of the page. In general, most boards require you to hold down a button while plugging it in, and copying the firmware file you downloaded (in step 2) to the new drive. == Device compatibility == Javelin works on any modern device that accepts USB keyboard input. This includes smartphones, Chromebooks, tablets, etc. === Apple iPhones === Javelin works out of the box with USB-C iPhones. For iPhones with a lightning connector, a camera kit is required. == Features == This section covers some noteworthy features of Javelin. If you wish to view all of the available settings and features, have a look through the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. You may have to select <code>Show expert options</code> to find the option you are looking for. === Embedded steno engine === ==== Compatible host devices ==== Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input. [[File:Javelin embedded steno engine on Pixel 4.mp4|center|thumb|508x508px|Demo of Javelin's embedded steno engine on an Android phone.]] ==== Dictionary management ==== Adding your own arbitrary JSON dictionaries is fully supported. Using the web tools or custom defined outlines, it is possible to temporarily disable dictionaries. [[File:Javelin dictionaries section.png|center|thumb|1065x1065px|Several programmatic dictionaries are implemented in Javelin, and arbitrary JSON dictionaries can be added.]] Compared to Plover, however, it is not possible to add your own programmatic dictionaries (such as python dictionaries) using the firmware builder. Some popular python dictionaries have been implemented in Javelin, such as Emily's symbols and Jeff's phrasing. However, there is no officially documented way to write a programmatic dictionary for Javelin (though it is technically possible). ==== Non-WSI layouts ==== It is not currently possible to use a non-WSI layout with Javelin (this may change in the future). ==== Unicode characters ==== Javelin supports several methods to write Unicode characters, which are all dependent on the host device. Using the settings in the web tools, the Unicode mode can be set to allow writing such characters on Linux, macOS, and Windows. Using the firmware builder, the default Unicode mode can be specified. [[File:Javelin keyboard emulation section.png|center|thumb|1021x1021px|All the methods that Javelin supports to write Unicode characters.]] ==== Key map customization ==== Like with Plover, the key map can be set in Javelin to allow for tweaks such as top `S` number key, or changing the placement of the thumber keys on various boards. [[File:Javelin key map section.png|center|thumb|1009x1009px|Javelin supports setting an arbitrary key map.]] ==== Adding translations ==== Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover. [[File:Adding translation with Javelin's TUI.mp4|center|thumb|562x562px|On-the-fly translations can be added with Javelin. In this case, <nowiki><code>POEUT</code></nowiki> is a free outline, and "potato" is being fingerspelled for the translation.]] ==== First-up and chord repeat ==== Using the firmware builder, it is trivial to add first-up chord send or chord repeat functionality to your board. [[File:Javelin first up-chord repeat section.png|center|thumb|1015x1015px|Javelin makes it very easy to add first-up/chord repeat compared to other keyboard firmwares.]] === Layout editor === Javelin has a GUI for editing the layout of your keyboard. It is a very powerful tool, allowing you to customize any aspect of the layout. === Web tools === Javelin provides a set of web tools for learning aids, and tweaking settings. ==== Cannot connect to device on Linux ==== If you see <code>Error connecting</code> while trying to connect to your device with the web tools, you need to add a udev rule. Create a file at <code>/etc/udev/rules.d/99-keyboard-javelin.rules</code> with the following content: <pre>SUBSYSTEM=="hidraw", ATTRS{idVendor}=="9000", ATTRS{idProduct}=="400d", MODE="0666"</pre>After creating the file, reload the rule with the following commands:<pre>sudo udevadm control --reload-rules sudo udevadm trigger</pre>{{Info|text=If this does not work, try replacing <code>9000</code> with <code>feed</code>.}} === Compatibility with existing steno protocols === Instead of outputting regular text, Javelin is also capable of outputting steno protocols such as Gemini PR or Plover HID. The Default Plover and Default Lapwing firmware files already have such layers configured. This is useful if you plan to still use Plover. 71d3f279a9cda8f7c45bd3c9981c6eddf9a012a4 Theming Plover with QSS 0 1502 2292 2188 2024-06-26T02:35:37Z Aerick 9 wikitext text/x-wiki Plover can be themed arbitrarily using Qt Style Sheets. Generic themes can be downloaded online from sites like https://qss-stock.devsecstudio.com/, and community made themes specifically for Plover can be found on this page. == Usage == Plover can be themed arbitrarily using Qt Style Sheets. To use a QSS file, follow these instructions: # Download the QSS file and name it <code>plover.qss</code>. # In Plover's main window, go to <code>File → Open Config Folder</code>. # Move the <code>plover.qss</code> file into this folder. # Restart Plover. == Community made QSS themes == === [https://gist.github.com/aerickt/04a56b23623afed376db38a6ca64388e Aerick's Adwaita Dark] === [[File:Aerick's Adwaita Dark Windows.png|alt=Aerick's Adwaita Dark theme on Windows 10.|left|frame|Aerick's Adwaita Dark theme on Windows 10.]] [[File:Aerick's Adwaita Dark theme on GNOME..png|alt=Aerick's Adwaita Dark theme on GNOME.|thumb|478x478px|Aerick's Adwaita Dark theme on GNOME.]] fd2d58f5bef9603466586d3935f9238de25b0139 2293 2292 2024-06-26T02:35:47Z Aerick 9 Aerick moved page [[QSS files for Plover]] to [[Theming Plover with QSS]] wikitext text/x-wiki Plover can be themed arbitrarily using Qt Style Sheets. Generic themes can be downloaded online from sites like https://qss-stock.devsecstudio.com/, and community made themes specifically for Plover can be found on this page. == Usage == Plover can be themed arbitrarily using Qt Style Sheets. To use a QSS file, follow these instructions: # Download the QSS file and name it <code>plover.qss</code>. # In Plover's main window, go to <code>File → Open Config Folder</code>. # Move the <code>plover.qss</code> file into this folder. # Restart Plover. == Community made QSS themes == === [https://gist.github.com/aerickt/04a56b23623afed376db38a6ca64388e Aerick's Adwaita Dark] === [[File:Aerick's Adwaita Dark Windows.png|alt=Aerick's Adwaita Dark theme on Windows 10.|left|frame|Aerick's Adwaita Dark theme on Windows 10.]] [[File:Aerick's Adwaita Dark theme on GNOME..png|alt=Aerick's Adwaita Dark theme on GNOME.|thumb|478x478px|Aerick's Adwaita Dark theme on GNOME.]] fd2d58f5bef9603466586d3935f9238de25b0139 QSS files for Plover 0 1534 2294 2024-06-26T02:35:47Z Aerick 9 Aerick moved page [[QSS files for Plover]] to [[Theming Plover with QSS]] wikitext text/x-wiki #REDIRECT [[Theming Plover with QSS]] e02c8ae3b2fea207a4f1f93250ee7ede0f0f3399 Configuration 0 61 2295 2185 2024-06-26T02:35:51Z Aerick 9 /* Theming/Dark Mode */ wikitext text/x-wiki This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI): [[File:Configure Menu Location.png|frameless|350x350px]] == Interface Tab == {| class="wikitable" |+ |'''Start minimized''' |Determines whether Plover is minimized or opened when the application starts. |- |'''Show paper tape''' |Determines whether Plover's paper tape window is open when the application starts. |- |'''Show suggestions''' |Determines whether Plover's suggestions window is open when the application starts. |- |'''Add translation dialog opacity''' |Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent. |- |'''Dictionaries display order''' |Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up. |} == Logging Tab == {| class="wikitable" |+ |'''Log file''' |Sets the file path and file name of your log file. Click the '''Browse''' button to set a path in your OS file browser. |- |'''Log strokes''' |Determines whether Plover logs your strokes to your log file |- |'''Log translations''' |Determines whether Plover logs your translations to your log file |} == Machine Tab == The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options. === Machine: Keyboard === [[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]] '''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling. ==== Remapping Keys to Different Actions ==== The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.) The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled. ==== Disabling Keyboard Keys ==== Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for &quot;no operation&quot;) which will disable that key while Plover is running. [[File:Machine configuration window.png|frameless|747x747px]] ''The escape key will be disabled while Plover's output is enabled with the configuration above, where the &quot;Escape&quot; key has been mapped to the &quot;no-op&quot; Action.'' === Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura === ==== Options Section ==== ===== Connection ===== Your machine will use a serial connection, which must be configured here. {| class="wikitable" |+ |'''Port''' |The serial port for serial connections. No default value. The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>. |- |'''Scan''' |Click to scan for connected devices |- |'''Baudrate''' |The baud rate for serial connections. 9600 by default. |} ===== Data Format ===== {| class="wikitable" |+ |'''Data bits''' |The number of bits in a byte for serial connections. 8 by default. |- |'''Stop bits''' |The number of stop bits for serial connections. 1 by default. |- |'''Parity''' |The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default. |} ===== Timeout ===== The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds). ==== Flow control ==== '''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default. '''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default. ==== Keymap Section ==== Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>. === Machine: Treal === ==== Keymap section ==== Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>. == Output Tab == {| class="wikitable" |+ |'''Enable at start''' |Determines whether Plover will start at system boot |- |'''Start attached''' |Determines whether Plover will start without a starting space |- |'''Start capitalized''' |Determines whether Plover will start with the first letter capitalized |- |'''Space placement''' |Determines whether spaces are prepended to your translations with '''Before Output''' or appended to your translations with '''After Output''' |- |'''Undo levels''' |Determines how many strokes can be undone with <code>*</code> |- |'''Key press delay (ms)''' |Determines how many milliseconds Plover will wait before outputting the translation of your strokes |} == Plugins Tab == Some plugins, such as <code>plover_clippy</code>or <code>plover_tapey_tape</code>will have configurations specific to the plugin here. == System Tab == Allows the user to switch to another stenography system. == Theming/Dark Mode == ''See: [[Theming Plover with QSS]].'' cf9a537a997deb29493c59af9be507a93d0ac880 Choosing a hobbyist steno writer 0 1525 2296 2259 2024-06-26T02:40:13Z Aerick 9 Typo, rephrase Javelin (it's a firmware...not *just* an embedded steno engine) wikitext text/x-wiki For most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate—choose a writer that's in stock, and within your budget. However, you may want to take more care in choosing a writer if any of the following apply to you: * You cannot run Plover on your device ** Incompatible devices (Android and iOS devices) ** Insufficient permissions on your computer (work/school computer) * You intend to steno in a language that's not English * You will exclusively use your steno writer in your computer usage == Considerations == === Javelin support === [[Javelin]] is a keyboard firmware that features an steno engine. This means all the steno translations occur within the keyboard itself, bypassing the need to install Plover on the host machine; essentially "plug and play stenography" without any setup required. This is useful if you cannot run Plover is not compatible with your device. === Non-English language support === The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]] (WSI), may not be sufficient for other languages. The layout for [[Steno Layouts and Supported Languages#Korean CAS|Korean CAS]] , for example, uses 6 thumb keys and has an entire dedicated row for numbers. If you are intending to use Plover for other languages, have a look at the [[Steno Layouts and Supported Languages|languages]] page for more details on the layouts supported by Plover. === Using a steno writer exclusively === It is possible to use a steno writer as your only keyboard for all your computer usage. However, sometimes it may be useful to have extra keys for two main reasons. First, some steno writers also double as a standard keyboard. They can be toggled to behave like a QWERTY keyboard (or any other layout), such that you do not need to switch physical keyboards. Furthermore, the extra keys on a steno writer can be mapped to modifier keys. This helps facilitating holding down keys as required for certain applications like CAD. == Table summary == {| class="wikitable sortable" !Product Name !Javelin Support !Non-English language support !QWERTY layer / Extra keys |- |[https://stenomod.blogspot.com/ TinyMod] |No |Limited to WSI |No |- |[https://nolltronics.com/product/ecosteno/ Ecosteno] | rowspan="2" |No |Limited to WSI |No |- |[https://nolltronics.com/product/multisteno/ Multisteno] |Yes |Yes |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |Yes |Limited to WSI |No |- |[https://www.stenokeyboards.com/products/the-uni-v4 The Uni] |Limited to WSI |No |- |[https://stenokeyboards.com/products/polyglot-keyboard Polyglot] |Yes |Yes |- |[https://www.stenography.store/ Starboard] |Yes |Limited to WSI |No |- |[https://softhruf.love/ SOFT/HRUF Splitography] |No |Yes |Yes |} c36a9634a9e8e3c26ea2cf2eb88575cdf8c11613 2347 2296 2024-07-23T23:44:55Z .kevinlel 1636 removed splitography wikitext text/x-wiki For most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate—choose a writer that's in stock, and within your budget. However, you may want to take more care in choosing a writer if any of the following apply to you: * You cannot run Plover on your device ** Incompatible devices (Android and iOS devices) ** Insufficient permissions on your computer (work/school computer) * You intend to steno in a language that's not English * You will exclusively use your steno writer in your computer usage == Considerations == === Javelin support === [[Javelin]] is a keyboard firmware that features an steno engine. This means all the steno translations occur within the keyboard itself, bypassing the need to install Plover on the host machine; essentially "plug and play stenography" without any setup required. This is useful if you cannot run Plover is not compatible with your device. === Non-English language support === The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]] (WSI), may not be sufficient for other languages. The layout for [[Steno Layouts and Supported Languages#Korean CAS|Korean CAS]] , for example, uses 6 thumb keys and has an entire dedicated row for numbers. If you are intending to use Plover for other languages, have a look at the [[Steno Layouts and Supported Languages|languages]] page for more details on the layouts supported by Plover. === Using a steno writer exclusively === It is possible to use a steno writer as your only keyboard for all your computer usage. However, sometimes it may be useful to have extra keys for two main reasons. First, some steno writers also double as a standard keyboard. They can be toggled to behave like a QWERTY keyboard (or any other layout), such that you do not need to switch physical keyboards. Furthermore, the extra keys on a steno writer can be mapped to modifier keys. This helps facilitating holding down keys as required for certain applications like CAD. == Table summary == {| class="wikitable sortable" !Product Name !Javelin Support !Non-English language support !QWERTY layer / Extra keys |- |[https://stenomod.blogspot.com/ TinyMod] |No |Limited to WSI |No |- |[https://nolltronics.com/product/ecosteno/ Ecosteno] | rowspan="2" |No |Limited to WSI |No |- |[https://nolltronics.com/product/multisteno/ Multisteno] |Yes |Yes |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |Yes |Limited to WSI |No |- |[https://www.stenokeyboards.com/products/the-uni-v4 The Uni] |Limited to WSI |No |- |[https://stenokeyboards.com/products/polyglot-keyboard Polyglot] |Yes |Yes |- |[https://www.stenography.store/ Starboard] |Yes |Limited to WSI |No |} 463a5190189d99c2d006a6259faf59427281b80c 2348 2347 2024-07-24T00:08:51Z Aerick 9 /* Add prices */ wikitext text/x-wiki For most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate—choose a writer that's in stock, and within your budget. However, you may want to take more care in choosing a writer if any of the following apply to you: * You cannot run Plover on your device ** Incompatible devices (Android and iOS devices) ** Insufficient permissions on your computer (work/school computer) * You intend to steno in a language that's not English * You will exclusively use your steno writer in your computer usage == Considerations == === Javelin support === [[Javelin]] is a keyboard firmware that features an steno engine. This means all the steno translations occur within the keyboard itself, bypassing the need to install Plover on the host machine; essentially "plug and play stenography" without any setup required. This is useful if you cannot run Plover is not compatible with your device. === Non-English language support === The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]] (WSI), may not be sufficient for other languages. The layout for [[Steno Layouts and Supported Languages#Korean CAS|Korean CAS]] , for example, uses 6 thumb keys and has an entire dedicated row for numbers. If you are intending to use Plover for other languages, have a look at the [[Steno Layouts and Supported Languages|languages]] page for more details on the layouts supported by Plover. === Using a steno writer exclusively === It is possible to use a steno writer as your only keyboard for all your computer usage. However, sometimes it may be useful to have extra keys for two main reasons. First, some steno writers also double as a standard keyboard. They can be toggled to behave like a QWERTY keyboard (or any other layout), such that you do not need to switch physical keyboards. Furthermore, the extra keys on a steno writer can be mapped to modifier keys. This helps facilitating holding down keys as required for certain applications like CAD. == Table summary == {| class="wikitable sortable" !Product Name !Javelin Support !Non-English language support !QWERTY layer / Extra keys !Price (USD) |- |[https://stenomod.blogspot.com/ TinyMod] |No |Limited to WSI |No |$140 (stock) $180 (silent) |- |[https://nolltronics.com/product/ecosteno/ Ecosteno] | rowspan="2" |No |Limited to WSI |No |$95 |- |[https://nolltronics.com/product/multisteno/ Multisteno] |Yes |Yes |$170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |Yes |Limited to WSI |No |$50 |- |[https://www.stenokeyboards.com/products/the-uni-v4 The Uni] |Limited to WSI |No |$100 |- |[https://stenokeyboards.com/products/polyglot-keyboard Polyglot] |Yes |Yes |$125 |- |[https://www.stenography.store/ Starboard] |Yes |Limited to WSI |No |$90 |} 897002d447b0b48342ae73ae86d626cfbf072226 File:Javelin keyboard emulation section.png 6 1535 2301 2024-07-13T02:09:00Z Aerick 9 wikitext text/x-wiki Javelin keyboard emulation section 937d3d4a339d60e6a577aae8d4da2ba624a0ad76 File:Javelin dictionaries section.png 6 1536 2302 2024-07-13T02:10:27Z Aerick 9 wikitext text/x-wiki Javelin dictionaries section f1c9e1f4d9ff02f75969c3bccc218dd888c23255 File:Javelin key map section.png 6 1537 2303 2024-07-13T02:13:03Z Aerick 9 wikitext text/x-wiki Javelin key map section 2c7a20b6ddf8df4e97ad5dfdfd338d3783547ef1 File:Javelin first up-chord repeat section.png 6 1538 2304 2024-07-13T02:16:36Z Aerick 9 wikitext text/x-wiki Javelin first up/chord repeat section 35a6553f1c24d66858eaf97eb89a3594d20bd622 File:Javelin embedded steno engine on Pixel 4.mp4 6 1539 2307 2024-07-13T03:12:37Z Aerick 9 wikitext text/x-wiki Javelin embedded steno engine on Pixel 4 16441ac1a953485a7f476b5f964a08fb31cce2cf File:Adding translation with Javelin's TUI.mp4 6 1540 2308 2024-07-13T03:13:49Z Aerick 9 wikitext text/x-wiki Adding translation with Javelin's TUI 72e33d97d8ce804a31a2f7f8b2ef46a07d349d4b Multisteno 0 1541 2311 2024-07-20T17:03:34Z Aerick 9 Created page with "The [https://nollelectronics.com/products/multisteno-case-and-cables-included Multisteno] is a hobbyist steno writer made by [https://nollelectronics.com/ Nolltronics]. == Use with Plover == By default, the Multisteno uses the Gemini PR protocol. See: [[Setting up a hobbyist writer with Plover]] == Layers == == Mods == === MBK key caps === The default key caps can be replaced with MBK key caps. === Spring swapping === The default springs bottom out at 25 grams of f..." wikitext text/x-wiki The [https://nollelectronics.com/products/multisteno-case-and-cables-included Multisteno] is a hobbyist steno writer made by [https://nollelectronics.com/ Nolltronics]. == Use with Plover == By default, the Multisteno uses the Gemini PR protocol. See: [[Setting up a hobbyist writer with Plover]] == Layers == == Mods == === MBK key caps === The default key caps can be replaced with MBK key caps. === Spring swapping === The default springs bottom out at 25 grams of force, but can be swapped with SPRiT springs that bottom out at 20 grams. === Firmware === The Multisteno is powered by QMK. 8275b62c008cb6e7476c8efb91df5637b1b5af90 2343 2311 2024-07-21T22:04:36Z Aerick 9 add infobox wikitext text/x-wiki The [https://nollelectronics.com/products/multisteno-case-and-cables-included Multisteno] is a hobbyist steno writer made by [https://nollelectronics.com/ Nolltronics]. {{Hobbyist writer infobox|name=Multisteno|image=Multisteno-Top.png|manufacturer=[https://nollelectronics.com/ Nolltronics]|connector=USB-C|switch=Kailh Choc|stock_weight=20 grams|spring_swap=Yes: 15 grams, 12 grams|alt_key_caps=MBK|javelin=No}} == Use with Plover == By default, the Multisteno uses the Gemini PR protocol. See: [[Setting up a hobbyist writer with Plover]] == Layers == == Mods == === MBK key caps === The default key caps can be replaced with MBK key caps. === Spring swapping === The default springs bottom out at 25 grams of force, but can be swapped with SPRiT springs that bottom out at 20 grams. === Firmware === The Multisteno is powered by QMK. 1749a983bda566e55473b7fee1f9f4e6cb60c203 Template:Tl 10 1549 2327 2326 2024-07-21T01:34:28Z Aerick 9 1 revision imported wikitext text/x-wiki #REDIRECT [[Template:Template link]] {{Redirect category shell| {{R from move}} }} d6593bb3b4a866249f55d0f34b047a71fe1f1529 Template:Hobbyist writer infobox 10 1557 2341 2024-07-21T21:57:25Z Aerick 9 Created page with "<includeonly> <aside style="float:right; margin-bottom: 10px; margin-left: 10px;"> <div style="background:#789;color:white; text-align:center; padding:5px 10px;"> '''{{{name}}}''' </div> <div style="background:#eee; padding:5px 10px;"> <center>[[File:{{{image}}}|200px]]</center> Manufacturer: {{{manufacturer}}} Connector: {{{connector}}} Key switch: {{{switch}}} Stock key weight: {{{stock_weight}}} Spring swap: {{{spring_swap}}} Alternative key caps: {{{alt_key_caps..." wikitext text/x-wiki <includeonly> <aside style="float:right; margin-bottom: 10px; margin-left: 10px;"> <div style="background:#789;color:white; text-align:center; padding:5px 10px;"> '''{{{name}}}''' </div> <div style="background:#eee; padding:5px 10px;"> <center>[[File:{{{image}}}|200px]]</center> Manufacturer: {{{manufacturer}}} Connector: {{{connector}}} Key switch: {{{switch}}} Stock key weight: {{{stock_weight}}} Spring swap: {{{spring_swap}}} Alternative key caps: {{{alt_key_caps}}} [[Javelin]]: {{{javelin}}} </div> </aside> </includeonly> <noinclude> Documentation for this template: name : Name of the writer. image : Filename of image uploaded to this wiki. manufacturer : Manufacturer of the keyboard. connector : Type of connector found on the writer switch : Key switch found on the writer stock_weight : Bottom out force of the unaltered switch (grams). spring_swap : Yes/No (lowest bottom out force available) alt_key_caps : Aftermarket key caps available to purchase javelin : Yes/No </noinclude> d4fe2bfce94540a92f1d57f22d3af24861cc3b32 2344 2341 2024-07-22T01:34:29Z Aerick 9 wikitext text/x-wiki <includeonly> <div style="float:right; margin-bottom: 10px; margin-left: 10px;"> <div style="background:#789;color:white; text-align:center; padding:5px 10px;"> '''{{{name}}}''' </div> <div style="background:#eee; padding:5px 10px;"> <center>[[File:{{{image}}}|200px]]</center> Manufacturer: {{{manufacturer}}} Connector: {{{connector}}} Key switch: {{{switch}}} Stock key weight: {{{stock_weight}}} Spring swap: {{{spring_swap}}} Alternative key caps: {{{alt_key_caps}}} [[Javelin]]: {{{javelin}}} </div> </div> </includeonly> <noinclude> Documentation for this template: name : Name of the writer. image : Filename of image uploaded to this wiki. manufacturer : Manufacturer of the keyboard. connector : Type of connector found on the writer switch : Key switch found on the writer stock_weight : Bottom out force of the unaltered switch (grams). spring_swap : Yes/No (lowest bottom out force available) alt_key_caps : Aftermarket key caps available to purchase javelin : Yes/No </noinclude> dc9e98a24d7963b517b850f8aa876bf85b48a965 File:Multisteno-Top.png 6 1558 2342 2024-07-21T22:03:42Z Aerick 9 wikitext text/x-wiki Multisteno Top View 1012c7212778ef97389e6ca84c06bf9f629b5ca0 Supported hardware 0 10 2345 2274 2024-07-23T23:43:12Z .kevinlel 1636 removed splitography wikitext text/x-wiki Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports. For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports: * [[Supported hardware#Stenotype machines|Professional stenotype machines]] * [[Supported hardware#Standard keyboards|Standard keyboards]] * [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin) * [[Supported hardware#DIY steno writers|DIY steno writers]] == Commercially available hobbyist writers == ''See also: [[choosing a hobbyist steno writer]].'' <!-- Group by brand (alphabetical), out of stock at bottom -->{| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]]. ''See also: [[out of production writers]].'' = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Video game controllers]] = DIY steno writers = See: [[DIY steno writers]] [[Category:Plover]] 88d866ba7c1a49dd7a278cf299a878f073cb4b75 2349 2345 2024-08-05T11:21:54Z Tharelia 1661 Added Jarne to hobbyist steno writers. wikitext text/x-wiki Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports. For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports: * [[Supported hardware#Stenotype machines|Professional stenotype machines]] * [[Supported hardware#Standard keyboards|Standard keyboards]] * [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin) * [[Supported hardware#DIY steno writers|DIY steno writers]] == Commercially available hobbyist writers == ''See also: [[choosing a hobbyist steno writer]].'' <!-- Group by brand (alphabetical), out of stock at bottom -->{| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- |[https://www.lim.au/#/hardware Jarne] |[https://shop.chenonetta.com Chenonetta Creations] |<img alt="Jarne" src="[https://lim.au/assets/assets/image/jarne1.jpg https://lim.au/assets/assets/image/jarne1.jpg" width="300px"]//> A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries. '''Stock status''' (August 2024): Ships within 3 weeks |Yes |$250-$350 |}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]]. ''See also: [[out of production writers]].'' = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Video game controllers]] = DIY steno writers = See: [[DIY steno writers]] [[Category:Plover]] 7fbf1b825593826b0563baf42919bcc2e9c8d9bf 2350 2349 2024-08-05T11:23:57Z Tharelia 1661 wikitext text/x-wiki Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports. For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports: * [[Supported hardware#Stenotype machines|Professional stenotype machines]] * [[Supported hardware#Standard keyboards|Standard keyboards]] * [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin) * [[Supported hardware#DIY steno writers|DIY steno writers]] == Commercially available hobbyist writers == ''See also: [[choosing a hobbyist steno writer]].'' <!-- Group by brand (alphabetical), out of stock at bottom -->{| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- |[https://www.lim.au/#/hardware Jarne] |[https://shop.chenonetta.com Chenonetta Creations] |<img alt="Jarne" src="https://lim.au/assets/assets/image/jarne1.jpg" width="300px"/> A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries. '''Stock status''' (August 2024): Ships within 3 weeks |Yes |$250-$350 |}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]]. ''See also: [[out of production writers]].'' = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Video game controllers]] = DIY steno writers = See: [[DIY steno writers]] [[Category:Plover]] a6c48aa17d81574d4992eebd498475ae812dae59 2351 2350 2024-08-05T11:24:39Z Tharelia 1661 Change Stock Status formatting for more consistency wikitext text/x-wiki Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports. For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports: * [[Supported hardware#Stenotype machines|Professional stenotype machines]] * [[Supported hardware#Standard keyboards|Standard keyboards]] * [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin) * [[Supported hardware#DIY steno writers|DIY steno writers]] == Commercially available hobbyist writers == ''See also: [[choosing a hobbyist steno writer]].'' <!-- Group by brand (alphabetical), out of stock at bottom -->{| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- |[https://www.lim.au/#/hardware Jarne] |[https://shop.chenonetta.com Chenonetta Creations] |<img alt="Jarne" src="https://lim.au/assets/assets/image/jarne1.jpg" width="300px"/> A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries. '''Stock status''' (August 2024): Ships within 3 weeks |Yes |$250-$350 |}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]]. ''See also: [[out of production writers]].'' = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Video game controllers]] = DIY steno writers = See: [[DIY steno writers]] [[Category:Plover]] f59e806bd9473fb87568c720e9b56fcd8dbad1ef 2352 2351 2024-08-05T16:13:17Z Tharelia 1661 Added info on Jarne options wikitext text/x-wiki Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports. For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports: * [[Supported hardware#Stenotype machines|Professional stenotype machines]] * [[Supported hardware#Standard keyboards|Standard keyboards]] * [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin) * [[Supported hardware#DIY steno writers|DIY steno writers]] == Commercially available hobbyist writers == ''See also: [[choosing a hobbyist steno writer]].'' <!-- Group by brand (alphabetical), out of stock at bottom -->{| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- |[https://www.lim.au/#/hardware Jarne] |[https://shop.chenonetta.com Chenonetta Creations] |<img alt="Jarne" src="https://lim.au/assets/assets/image/jarne1.jpg" width="300px"/> A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries. Wireless charging, tenting and tripod mount options available as extras. '''Stock status''' (August 2024): Ships within 3 weeks |Yes |$250-$350 |}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]]. ''See also: [[out of production writers]].'' = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Video game controllers]] = DIY steno writers = See: [[DIY steno writers]] [[Category:Plover]] 1844563bee1462b05698c41daafa087ef859b5d4 Out of production writers 0 1511 2346 2237 2024-07-23T23:44:21Z .kevinlel 1636 added splitography wikitext text/x-wiki Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |- | [https://softhruf.love SOFT/HRUF] | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |- | [https://softhruf.love SOFT/HRUF Splitography] | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate. | |- | [https://stenomod.blogspot.com Stenomod] | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable. | 2017-2018, superseded by the TinyMod |- | [https://www.gboards.ca/product/georgi Georgi] | [https://www.gboards.ca g Heavy Industries] | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos]. | 2019-2021 |- | [https://quanicboards.com/products/steko Steko] | [https://quanicboards.com Quanic Boards] | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |}<span id="stenotype-machines"></span> 8316a81c2c59c826b65cacf593a344a22d2130ad File:Javelin Firmware Builder Default.png 6 1559 2353 2024-08-07T16:50:04Z Aerick 9 wikitext text/x-wiki Javelin Firmware Builder Default 678ba2593ed221ca1e7dba015d1a36ce692647df File:Javelin firmware builder device.png 6 1560 2354 2024-08-07T16:54:01Z Aerick 9 wikitext text/x-wiki Javelin firmware builder device 4401d4b5f0587f71698982371f762b851d499a9e Choosing a steno theory 0 1561 2357 2024-08-08T20:47:59Z Aerick 9 Created page with "There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called..." wikitext text/x-wiki There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch. 110e20ede1028a0d36d0fe5e7d8e85c2c08fcaa2 Beginner's Guide 0 4 2358 2245 2024-08-08T20:50:13Z Aerick 9 simplify practice and learn wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. Owning a dedicated dedicated steno writer makes it easier to reach high speeds. '''If you are unsure of if you want to learn steno''', read the page on [[using a standard keyboard with Plover]]. '''If you are sure you want to learn steno''', we recommend purchasing a [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writer]]. <!--T:41--> It is also possible to use a professional stenography machine with Plover. See the [[Supported Hardware#Stenotype machines|supported Hardware]] page for a list of compatible professional stenography machines. <!--T:42--> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]]. <!--T:45--> === Enable Plover === Once you have set up your machine with Plover <!--T:46--> # Run Plover. # In the main window of Plover, set <code>Output</code> to <code>Enabled</code> <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below: <!--T:50--> <br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so: [[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]] If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly. * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes. <!--T:54--> <span id="practice-sentences"></span> ==== Practice sentences ==== <!--T:55--> You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> [[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]] <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:61--> {| class="wikitable" |- ! style="text-align: center;"| QWERTY layout ! style="text-align: center;"| Maps to steno layout |- | style="text-align: center;"| <code>QWER TY UIOP[</code> | style="text-align: center;"| <code>STPH ** FPLTD</code> |- | style="text-align: center;"| <code>ASDF GH JKL;</code> | style="text-align: center;"| <code>SKWR ** RBGSZ</code> |- | style="text-align: center;"| <code>CV NM</code> | style="text-align: center;"| <code>AO EU</code> |} <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> Now that you have a working setup, it's time to start learning a steno theory. This is the set of rules you need to know in order to convert words to steno strokes. There are a few freely available steno theories with their own pros and cons, but we recommend learning [https://lapwing.aerick.ca Lapwing theory]. See also: [[Choosing a steno theory]] <!--T:71--> <span id="personalizing-your-dictionary"></span> == Personalize your dictionary == <!--T:80--> Once you have learned a decent amount of theory, it is important to customize your steno dictionary. English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes. <!--T:81--> English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things. <!--T:82--> For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else. <!--T:83--> When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write. More information: [[Personalizing your dictionary]]. <!--T:78--> [[Category:Plover]] </translate> 4deef293cc6f9fb66b2d27cbb6507fda15cfb528 Beginner's Guide 0 4 2359 2358 2024-08-08T20:54:44Z Aerick 9 remove reference to steno jig two key drill wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. Owning a dedicated dedicated steno writer makes it easier to reach high speeds. '''If you are unsure of if you want to learn steno''', read the page on [[using a standard keyboard with Plover]]. '''If you are sure you want to learn steno''', we recommend purchasing a [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writer]]. <!--T:41--> It is also possible to use a professional stenography machine with Plover. See the [[Supported Hardware#Stenotype machines|supported Hardware]] page for a list of compatible professional stenography machines. <!--T:42--> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]]. <!--T:45--> === Enable Plover === Once you have set up your machine with Plover <!--T:46--> # Run Plover. # In the main window of Plover, set <code>Output</code> to <code>Enabled</code> <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below: <!--T:50--> <br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so: [[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]] If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly. * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> [[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]] <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> Now that you have a working setup, it's time to start learning a steno theory. This is the set of rules you need to know in order to convert words to steno strokes. There are a few freely available steno theories with their own pros and cons, but we recommend learning [https://lapwing.aerick.ca Lapwing theory]. See also: [[Choosing a steno theory]] <!--T:71--> <span id="personalizing-your-dictionary"></span> == Personalize your dictionary == <!--T:80--> Once you have learned a decent amount of theory, it is important to customize your steno dictionary. English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes. <!--T:81--> English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things. <!--T:82--> For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else. <!--T:83--> When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write. More information: [[Personalizing your dictionary]]. <!--T:78--> [[Category:Plover]] </translate> 7e4a7fab134718b0f95f6d9384597549ad06eefd 2360 2359 2024-08-08T21:40:49Z Aerick 9 /* Practice and learn */ wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. Owning a dedicated dedicated steno writer makes it easier to reach high speeds. '''If you are unsure of if you want to learn steno''', read the page on [[using a standard keyboard with Plover]]. '''If you are sure you want to learn steno''', we recommend purchasing a [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writer]]. <!--T:41--> It is also possible to use a professional stenography machine with Plover. See the [[Supported Hardware#Stenotype machines|supported Hardware]] page for a list of compatible professional stenography machines. <!--T:42--> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]]. <!--T:45--> === Enable Plover === Once you have set up your machine with Plover <!--T:46--> # Run Plover. # In the main window of Plover, set <code>Output</code> to <code>Enabled</code> <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below: <!--T:50--> <br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so: [[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]] If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly. * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> [[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]] <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> Now that you have a working setup, it's time to start learning a steno theory. This is the set of rules you need to know in order to convert words to steno strokes. There are a few freely available steno theories with their own pros and cons, but we recommend learning [https://lapwing.aerick.ca Lapwing theory]. ''See also: [[Choosing a steno theory]]'' <!--T:71--> <span id="personalizing-your-dictionary"></span> == Personalize your dictionary == <!--T:80--> Once you have learned a decent amount of theory, it is important to customize your steno dictionary. English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes. <!--T:81--> English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things. <!--T:82--> For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else. <!--T:83--> When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write. More information: [[Personalizing your dictionary]]. <!--T:78--> [[Category:Plover]] </translate> 3828ba889d8d10905614992fc5a9ccce312df55d 2362 2360 2024-08-09T22:49:54Z Aerick 9 /* Make personalizing your dictionary section more concise */ wikitext text/x-wiki <languages /> <translate> <!--T:6--> This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. <!--T:7--> <span id="download-and-install-plover"></span> == Download and Install Plover == <!--T:8--> Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''. <!--T:9--> * '''[[Installation_Guide|Download and install Plover with the Installation Guide]]''' * If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]]. <!--T:10--> <span id="connect-a-compatible-keyboard-or-stenography-machine"></span> == Connect a compatible keyboard or stenography machine == <!--T:11--> <!--T:12--> Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. Owning a dedicated dedicated steno writer makes it easier to reach high speeds. '''If you are unsure of if you want to learn steno''', read the page on [[using a standard keyboard with Plover]]. '''If you are sure you want to learn steno''', we recommend purchasing a [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writer]]. <!--T:41--> It is also possible to use a professional stenography machine with Plover. See the [[Supported Hardware#Stenotype machines|supported Hardware]] page for a list of compatible professional stenography machines. <!--T:42--> == Confirm it’s working == <!--T:43--> Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]]. <!--T:45--> === Enable Plover === Once you have set up your machine with Plover <!--T:46--> # Run Plover. # In the main window of Plover, set <code>Output</code> to <code>Enabled</code> <!--T:47--> <span id="write-hello-world"></span> === Write “Hello World” === <!--T:48--> To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time. <!--T:49--> {{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below: <!--T:50--> <br /> [[File:Plover_key_delay.png]]}} <!--T:51--> If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so: [[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]] If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. <!--T:52--> {| class="wikitable" |- ! Output ! Steno Stroke ! QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} <!--T:53--> If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly. * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes. <!--T:56--> <span id="use-the-correct-body-posture-and-finger-placement"></span> ==== Use the correct body posture and finger placement ==== <!--T:57--> Your fingers should be curled slightly, so you press the keys using the tips of your fingers. <!--T:58--> <div class="figure"> <!--T:59--> [[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]] <!--T:60--> </div> On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. <!--T:62--> See also: <!--T:63--> * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] <!--T:69--> <span id="practice-and-learn"></span> == Practice and learn == <!--T:70--> Now that you have a working setup, it's time to start learning a steno theory. This is the set of rules you need to know in order to convert words to steno strokes. There are a few freely available steno theories with their own pros and cons, but we recommend learning [https://lapwing.aerick.ca Lapwing theory]. ''See also: [[Choosing a steno theory]]'' <!--T:71--> <span id="personalizing-your-dictionary"></span> == Personalize your dictionary == <!--T:80--> Once you have learned a decent amount of theory, it is important to customize your steno dictionary. English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes. Steno is highly personal, and it is difficult to gain speed by sticking to default mappings. No two stenographers' dictionaries are the same because of how complicated the English language is. Some steno concepts work well for some people, but not for others. ''More information: [[Personalizing your dictionary]].'' <!--T:78--> [[Category:Plover]] </translate> e40a3dac3bef7d9125fe270e3b2d9e266a5f9eda Personalizing your dictionary 0 1492 2361 2164 2024-08-09T22:45:06Z Aerick 9 typo wikitext text/x-wiki == The dictionary's purpose == English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps steno outlines to English words. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers. For languages with much more regular spelling, dictionaries aren't always necessary. It may be desirable to design what's called an orthographic system that is based entirely on spelling; chords on the steno layout are assigned to characters rather than sounds. With these, dictionaries may not even be necessary as the system only has to combine character groups together. Orthographic systems do exist for English, but they are generally slower than more traditional steno systems. This is mainly due to the less consistent spelling in the English language. == The rationale behind different dictionaries == English steno is built on the idea that no two stenographers' dictionaries are the same. For some, this may seem odd—why not just standardize steno and have everyone learn the same theory/dictionary? Well first of all, English is a complicated language with different dialects and accents. With steno being primarily phonetic, it would difficult to create a single theory for all English speakers. More importantly, however, there are different ideas as to how the English language should be encoded on the the layout. Some steno theories are more heavy in rote memorization and require you to memorize more arbitrary steno strokes. Some steno theories rely more heavily on spelling instead of phonetics. Some steno theories like to split words more logically, while others may be more open-ended. There is no single "best" steno theory since some ideas are more intuitive than others depending on the person. Different theories click for different people. == Different dictionaries within the same theory == Even within one theory, different stenographers will have different dictionaries. This is due to the fact that a lot of steno theories are at least a little open-ended. It would be difficult to create a rule for every single edge case in the English language. Additionally, to expect everyone to follow these subtle rules would be unrealistic. Most hobbyists start off adding simple entries to their dictionaries. For example, the steno stroke <code>APD</code> does not represent any word in the English language. If you write about the Albuquerque Police Department often, this is a good stroke that you can use. On the other hand, you may find yourself accidentally stroking <code>APD</code> instead of <code>APT</code> when writing the word "apt"; this would be a good misstroke entry to add. It is also conceivable that the sound represented by this stroke is actually a word found in some particular niche circle. In this case, it may make sense to an individual part of this community to assign <code>APD</code> to this niche term. What this stroke is assigned to depends entirely on the person, their writing style, and what they write about. [[Category:Plover]] __FORCETOC__ 70889d5d88d154c75b9f0035463c5c44c1393f41 Glossary 0 16 2363 2108 2024-08-09T23:33:31Z Aerick 9 Add orthography and phonetic wikitext text/x-wiki This glossary will help you with terms that you may come across in the steno community. === Arpeggiate === A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. === Brief === Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>FRIMT</code> (reads: "frimt" and takes only one stroke) === Chord === A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Conflict === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Dragging === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Mandatory === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline. === Misstroke === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Orthographic === Relating to spelling. For example, assigning spellings to chords can be described as orthographic. ''See also: [[Glossary#Orthography|Phonetic]]'' === Philly Shift === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. === Phonetic === Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. ''See also: [[Glossary#Orthographic|Orthographic]]'' === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Shadowing === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Stacking === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Steno Dictionary === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Order === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Stroke === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. === Steno Theory === A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally. === Suffix folding or tucking === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Untranslate === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Word Boundary === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Write Out === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". === Writing === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] b4d0c5d37e645c26ba6d00b4c6ef9d7ba9938391 2391 2363 2024-08-18T23:58:02Z Crorl 1668 /* Orthographic */ Added "Fingerspelling" and "Orthospelling". Expanded "Orthographic" and "Phonetic". wikitext text/x-wiki This glossary will help you with terms that you may come across in the steno community. === Arpeggiate === A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. === Brief === Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>FRIMT</code> (reads: "frimt" and takes only one stroke) === Chord === A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Conflict === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Dragging === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === Fingerspelling === Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Mandatory === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline. === Misstroke === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Orthographic === Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]]. ''See also: [[Glossary#Orthography|Phonetic]]'' === Orthospelling === A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine. === Philly Shift === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. === Phonetic === Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. ''See also: [[Glossary#Orthographic|Orthographic]]'' === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Shadowing === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Stacking === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Steno Dictionary === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Order === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Stroke === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. === Steno Theory === A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally. === Suffix folding or tucking === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Untranslate === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Word Boundary === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Write Out === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". === Writing === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] f633b92c53bdee44594877dad35ab29f71af0776 2392 2391 2024-08-19T00:00:04Z Crorl 1668 /* Chord */ chords don't necessarily represent just sounds wikitext text/x-wiki This glossary will help you with terms that you may come across in the steno community. === Arpeggiate === A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. === Brief === Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>FRIMT</code> (reads: "frimt" and takes only one stroke) === Chord === A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Conflict === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Dragging === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === Fingerspelling === Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Mandatory === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline. === Misstroke === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Orthographic === Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]]. ''See also: [[Glossary#Orthography|Phonetic]]'' === Orthospelling === A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine. === Philly Shift === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. === Phonetic === Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. ''See also: [[Glossary#Orthographic|Orthographic]]'' === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Shadowing === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Stacking === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Steno Dictionary === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Order === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Stroke === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. === Steno Theory === A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally. === Suffix folding or tucking === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Untranslate === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Word Boundary === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Write Out === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". === Writing === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] 8e2d459a8ef7644e47b7d553fa3c7d0586c905f2 2393 2392 2024-08-19T00:18:31Z Crorl 1668 /* Steno Theory */ Added brief-heavy and stroke-heavy. Adjusted Steno Theory to refer to other terminology within the glossary. wikitext text/x-wiki This glossary will help you with terms that you may come across in the steno community. === Arpeggiate === A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. === Brief === Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>FRIMT</code> (reads: "frimt" and takes only one stroke) Theories that rely on significant amounts of briefs are considered '''brief-heavy''''','' and considered to require a heavy mental load due to the memorisation required. A theory that is known for being brief-heavy in the industry is [[Magnum]]. === Chord === A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Conflict === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Dragging === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === Fingerspelling === Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Mandatory === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline. === Misstroke === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Orthographic === Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]]. Generally, theories that heavily rely on orthographic rules end up [[Glossary#Stroke|stroke-heavy]]! ''See also: [[Glossary#Orthography|Phonetic]]'' === Orthospelling === A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine. === Philly Shift === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. === Phonetic === Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. Generally, theories that heavily rely on phonetic rules run into [[Glossary#Conflict|conflicts]]! ''See also: [[Glossary#Orthographic|Orthographic]]'' === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Shadowing === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Stacking === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Steno Dictionary === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Order === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Stroke === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. Theories that use many strokes to represent multi-syllable words are considered '''stroke-heavy'''''.'' For example, if a theory used the strokes <code>STE/TPHO/TKPWRA/TPER</code> for ''stenographer,'' it would be less brieflike and represent the original word more accurately, but it requires two more strokes. === Steno Theory === A set of stenographic rules that guides the thinking of the user to determine which steno strokes will match to which words. Theories range on a spectrum from [[Glossary#Orthographic|''orthographic'']] to [[Glossary#Phonetic|''phonetic'']]. The dictionary included with Plover uses [[Plover theory]], which is based on "NYCI theory", which is further descended from StenEd. It offers a hybrid between a [[Glossary#Brief|brief-heavy]] and [[Glossary#Stroke|stroke-heavy]] theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai Knight, the founder of Plover, uses the Plover dictionary as a professional captioner. === Suffix folding or tucking === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Untranslate === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Word Boundary === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Write Out === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". === Writing === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] d28b7c43256636a37f647166165789607abd545d 2394 2393 2024-08-19T00:21:28Z Crorl 1668 /* Write Out */ Mentioned stroke-heavy wikitext text/x-wiki This glossary will help you with terms that you may come across in the steno community. === Arpeggiate === A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. === Brief === Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>FRIMT</code> (reads: "frimt" and takes only one stroke) Theories that rely on significant amounts of briefs are considered '''brief-heavy''''','' and considered to require a heavy mental load due to the memorisation required. A theory that is known for being brief-heavy in the industry is [[Magnum]]. === Chord === A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Conflict === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Dragging === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === Fingerspelling === Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Mandatory === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline. === Misstroke === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Orthographic === Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]]. Generally, theories that heavily rely on orthographic rules end up [[Glossary#Stroke|stroke-heavy]]! ''See also: [[Glossary#Orthography|Phonetic]]'' === Orthospelling === A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine. === Philly Shift === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. === Phonetic === Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. Generally, theories that heavily rely on phonetic rules run into [[Glossary#Conflict|conflicts]]! ''See also: [[Glossary#Orthographic|Orthographic]]'' === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Shadowing === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Stacking === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Steno Dictionary === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Order === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Stroke === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. Theories that use many strokes to represent multi-syllable words are considered '''stroke-heavy''' or '''stroke-intensive'''''.'' For example, if a theory used the strokes <code>STE/TPHO/TKPWRA/TPER</code> for ''stenographer,'' it would be less brieflike and represent the original word more accurately, but it requires two more strokes. === Steno Theory === A set of stenographic rules that guides the thinking of the user to determine which steno strokes will match to which words. Theories range on a spectrum from [[Glossary#Orthographic|''orthographic'']] to [[Glossary#Phonetic|''phonetic'']]. The dictionary included with Plover uses [[Plover theory]], which is based on "NYCI theory", which is further descended from StenEd. It offers a hybrid between a [[Glossary#Brief|brief-heavy]] and [[Glossary#Stroke|stroke-heavy]] theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai Knight, the founder of Plover, uses the Plover dictionary as a professional captioner. === Suffix folding or tucking === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Untranslate === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Word Boundary === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Write Out === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". This generally leads to a more [[Glossary#Stroke|stroke​-​heavy]] form of writing. === Writing === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] d93020027c34ef801debe58e5bb0d81cc062ffde 2405 2394 2024-08-19T08:38:38Z Crorl 1668 Added Short and Long wikitext text/x-wiki This glossary will help you with terms that you may come across in the steno community. === Arpeggiate === A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. === Brief === Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>FRIMT</code> (reads: "frimt" and takes only one stroke) Theories that rely on significant amounts of briefs are considered '''brief-heavy''''','' and considered to require a heavy mental load due to the memorisation required. A theory that is known for being brief-heavy in the industry is [[Magnum]]. === Chord === A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Conflict === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Dragging === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === Fingerspelling === Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Long === Describes a theory that has words that are written with very many strokes. This often means very little information is omitted when words are converted to shorthand, whether it is orthographic or phonetic information. ''See also: [[Glossary#Short|Short]]'' === Mandatory === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline. === Misstroke === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Orthographic === Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]]. Generally, theories that heavily rely on orthographic rules end up [[Glossary#Stroke|stroke-heavy]]! ''See also: [[Glossary#Orthography|Phonetic]]'' === Orthospelling === A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine. === Philly Shift === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. === Phonetic === Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. Generally, theories that heavily rely on phonetic rules run into [[Glossary#Conflict|conflicts]]! ''See also: [[Glossary#Orthographic|Orthographic]]'' === Phrase === A stenographic definition that outputs multiple words. === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Shadowing === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Stacking === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Short === Describes a theory that has words that are written with few strokes. This usually means a high amount of [[Glossary#Brief|briefs]] and [[Glossary#Phrase|phrases]], and a vaguer representation of words. See also: ''[[Glossary#Long|Long]]'' === Steno Dictionary === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Order === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Stroke === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. Theories that use many strokes to represent multi-syllable words are considered '''stroke-heavy''' or '''stroke-intensive'''''.'' For example, if a theory used the strokes <code>STE/TPHO/TKPWRA/TPER</code> for ''stenographer,'' it would be less brieflike and represent the original word more accurately, but it requires two more strokes. === Steno Theory === A set of stenographic rules that guides the thinking of the user to determine which steno strokes will match to which words. Theories range on a spectrum from [[Glossary#Orthographic|''orthographic'']] to [[Glossary#Phonetic|''phonetic'']]. The dictionary included with Plover uses [[Plover theory]], which is based on "NYCI theory", which is further descended from StenEd. It offers a hybrid between a [[Glossary#Brief|brief-heavy]] and [[Glossary#Stroke|stroke-heavy]] theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai Knight, the founder of Plover, uses the Plover dictionary as a professional captioner. === Suffix folding or tucking === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Untranslate === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Word Boundary === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Write Out === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". This generally leads to a more [[Glossary#Stroke|stroke​-​heavy]] form of writing. === Writing === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] b70c698e5e9a07d94f6aff926ce1ad7fa12ed92f 2406 2405 2024-08-19T08:39:42Z Crorl 1668 /* Mandatory */ add link to write out wikitext text/x-wiki This glossary will help you with terms that you may come across in the steno community. === Arpeggiate === A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. === Brief === Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>FRIMT</code> (reads: "frimt" and takes only one stroke) Theories that rely on significant amounts of briefs are considered '''brief-heavy''''','' and considered to require a heavy mental load due to the memorisation required. A theory that is known for being brief-heavy in the industry is [[Magnum]]. === Chord === A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Conflict === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Dragging === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === Fingerspelling === Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Long === Describes a theory that has words that are written with very many strokes. This often means very little information is omitted when words are converted to shorthand, whether it is orthographic or phonetic information. ''See also: [[Glossary#Short|Short]]'' === Mandatory === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no [[Glossary#Write Out|written out]] outline. === Misstroke === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Orthographic === Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]]. Generally, theories that heavily rely on orthographic rules end up [[Glossary#Stroke|stroke-heavy]]! ''See also: [[Glossary#Orthography|Phonetic]]'' === Orthospelling === A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine. === Philly Shift === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. === Phonetic === Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. Generally, theories that heavily rely on phonetic rules run into [[Glossary#Conflict|conflicts]]! ''See also: [[Glossary#Orthographic|Orthographic]]'' === Phrase === A stenographic definition that outputs multiple words. === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Shadowing === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Stacking === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Short === Describes a theory that has words that are written with few strokes. This usually means a high amount of [[Glossary#Brief|briefs]] and [[Glossary#Phrase|phrases]], and a vaguer representation of words. See also: ''[[Glossary#Long|Long]]'' === Steno Dictionary === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Order === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Stroke === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. Theories that use many strokes to represent multi-syllable words are considered '''stroke-heavy''' or '''stroke-intensive'''''.'' For example, if a theory used the strokes <code>STE/TPHO/TKPWRA/TPER</code> for ''stenographer,'' it would be less brieflike and represent the original word more accurately, but it requires two more strokes. === Steno Theory === A set of stenographic rules that guides the thinking of the user to determine which steno strokes will match to which words. Theories range on a spectrum from [[Glossary#Orthographic|''orthographic'']] to [[Glossary#Phonetic|''phonetic'']]. The dictionary included with Plover uses [[Plover theory]], which is based on "NYCI theory", which is further descended from StenEd. It offers a hybrid between a [[Glossary#Brief|brief-heavy]] and [[Glossary#Stroke|stroke-heavy]] theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai Knight, the founder of Plover, uses the Plover dictionary as a professional captioner. === Suffix folding or tucking === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Untranslate === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Word Boundary === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Write Out === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". This generally leads to a more [[Glossary#Stroke|stroke​-​heavy]] form of writing. === Writing === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] 4666b1382bfd7e28f52fb4316f71ebc320b0c469 2407 2406 2024-08-19T08:43:08Z Crorl 1668 /* Philly Shift */ wikitext text/x-wiki This glossary will help you with terms that you may come across in the steno community. === Arpeggiate === A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. === Brief === Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>FRIMT</code> (reads: "frimt" and takes only one stroke) Theories that rely on significant amounts of briefs are considered '''brief-heavy''''','' and considered to require a heavy mental load due to the memorisation required. A theory that is known for being brief-heavy in the industry is [[Magnum]]. === Chord === A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Conflict === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Dragging === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === Fingerspelling === Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Long === Describes a theory that has words that are written with very many strokes. This often means very little information is omitted when words are converted to shorthand, whether it is orthographic or phonetic information. ''See also: [[Glossary#Short|Short]]'' === Mandatory === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no [[Glossary#Write Out|written out]] outline. === Misstroke === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Orthographic === Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]]. Generally, theories that heavily rely on orthographic rules end up [[Glossary#Stroke|stroke-heavy]]! ''See also: [[Glossary#Orthography|Phonetic]]'' === Orthospelling === A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine. === Philly Shift === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. This technique is named after the theory from which it originated, in the [[Philadelphia Clinic Theory]]. === Phonetic === Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. Generally, theories that heavily rely on phonetic rules run into [[Glossary#Conflict|conflicts]]! ''See also: [[Glossary#Orthographic|Orthographic]]'' === Phrase === A stenographic definition that outputs multiple words. === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Shadowing === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Stacking === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Short === Describes a theory that has words that are written with few strokes. This usually means a high amount of [[Glossary#Brief|briefs]] and [[Glossary#Phrase|phrases]], and a vaguer representation of words. See also: ''[[Glossary#Long|Long]]'' === Steno Dictionary === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Order === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Stroke === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. Theories that use many strokes to represent multi-syllable words are considered '''stroke-heavy''' or '''stroke-intensive'''''.'' For example, if a theory used the strokes <code>STE/TPHO/TKPWRA/TPER</code> for ''stenographer,'' it would be less brieflike and represent the original word more accurately, but it requires two more strokes. === Steno Theory === A set of stenographic rules that guides the thinking of the user to determine which steno strokes will match to which words. Theories range on a spectrum from [[Glossary#Orthographic|''orthographic'']] to [[Glossary#Phonetic|''phonetic'']]. The dictionary included with Plover uses [[Plover theory]], which is based on "NYCI theory", which is further descended from StenEd. It offers a hybrid between a [[Glossary#Brief|brief-heavy]] and [[Glossary#Stroke|stroke-heavy]] theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai Knight, the founder of Plover, uses the Plover dictionary as a professional captioner. === Suffix folding or tucking === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Untranslate === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Word Boundary === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Write Out === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". This generally leads to a more [[Glossary#Stroke|stroke​-​heavy]] form of writing. === Writing === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] 3153f7b3117cdedfe813e79a779698a1472811f9 2408 2407 2024-08-19T08:54:57Z Crorl 1668 /* Long */ wikitext text/x-wiki This glossary will help you with terms that you may come across in the steno community. === Arpeggiate === A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below. <img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" > The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys. === Brief === Also known as the "abbreviation", "short form", or "arbitrary". Briefs describe any less rigid mappings of steno outlines to English words or phrases. They can vaguely represent some of the spelling or sounds of the output, or have no relation between the outline and output. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out: <code>TPROPL/TAOEUPL/TO/TAOEUPL</code> (reads: "from/time/to/time" and takes four strokes) Or, as a simple brief: <code>TPREUPLT</code> (reads: "frimt" and takes only one stroke. This phrase brief vaguely represents the sounds and spelling of the words outputted.) Theories that rely on significant amounts of briefs are considered '''brief-heavy''''','' and considered to require a heavy mental load due to the memorisation required. A theory that is known for being brief-heavy in the industry is [[Magnum theory|Magnum]]. === Chord === A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound. === Conflict === # traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories. # informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order. === Dragging === Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead. === Fingerspelling === Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet. === JSON === JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>. === Long === Describes a theory that has words that are written with very many strokes. This often means [[Glossary#Write Out|write outs]]. [[RWG theory]] is often regarded as being quite long. ''See also: [[Glossary#Short|Short]]'' === Mandatory === A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no [[Glossary#Write Out|written out]] outline. === Misstroke === A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke. === Outline === One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''. === Orthographic === Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]]. Generally, theories that heavily rely on orthographic rules end up [[Glossary#Stroke|stroke-heavy]]! ''See also: [[Glossary#Orthography|Phonetic]]'' === Orthospelling === A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine. === Philly Shift === Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. This technique is named after the theory from which it originated, in the [[Philadelphia Clinic Theory]]. === Phonetic === Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. Generally, theories that heavily rely on phonetic rules run into [[Glossary#Conflict|conflicts]]! ''See also: [[Glossary#Orthographic|Orthographic]]'' === Phrase === A stenographic definition that outputs multiple words. === RTF/CRE === Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively. === Shadowing === Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity. === Stacking === When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys. You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten. === Short === Describes a theory that has words that are written with few strokes. This usually means a high amount of [[Glossary#Brief|briefs]] and [[Glossary#Phrase|phrases]], and a vaguer representation of words. See also: ''[[Glossary#Long|Long]]'' === Steno Dictionary === Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation. === Steno Order === The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>. === Stroke === A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>. Theories that use many strokes to represent multi-syllable words are considered '''stroke-heavy''' or '''stroke-intensive'''''.'' For example, if a theory used the strokes <code>STE/TPHO/TKPWRA/TPER</code> for ''stenographer,'' it would be less brieflike and represent the original word more accurately, but it requires two more strokes. === Steno Theory === A set of stenographic rules that guides the thinking of the user to determine which steno strokes will match to which words. Theories range on a spectrum from [[Glossary#Orthographic|''orthographic'']] to [[Glossary#Phonetic|''phonetic'']]. The dictionary included with Plover uses [[Plover theory]], which is based on "NYCI theory", which is further descended from StenEd. It offers a hybrid between a [[Glossary#Brief|brief-heavy]] and [[Glossary#Stroke|stroke-heavy]] theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai Knight, the founder of Plover, uses the Plover dictionary as a professional captioner. === Suffix folding or tucking === In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking. Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>. === Untranslate === Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>. === Word Boundary === The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary. An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated: Examples (Plover): * "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code> * "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code> * "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code> === Write Out === The opposite of a [[Glossary#Brief|brief]] is writing out the word according to the more consistent rules of your theory. Very little information is omitted when words are converted to shorthand, whether it is orthographic or phonetic information. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion". This generally leads to a more [[Glossary#Stroke|stroke​-​heavy]] form of writing. === Writing === Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time. [[Category:Stenography]] d9acc13d96ae98cfe19627838036df9f81248c0a Choosing a steno theory 0 1561 2364 2357 2024-08-10T00:08:19Z Aerick 9 Revamp wikitext text/x-wiki A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read. == The rationale for multiple theories == A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that English a complicated language. === Homophones === First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person. Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method. Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word. Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke. === Shorter versus longer theories === Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds. Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process. === Complexity of English accents and dialects === English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English. == Freely available steno theories == There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online. === Plover theory === The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process. === Lapwing theory === Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency. We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. === Platinum theory === A commercial theory for court reporting students taught through YouTube videos. == Commercially available steno theories == === Phoenix === === Magnum === === StenEd === === Realwrite/Realtime === == Which steno theory should you learn? == Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages. b05e4c46372f935b2e617a72de46e0fccd76dc35 2367 2364 2024-08-17T03:43:50Z Aerick 9 /* Add links to theory pages */ wikitext text/x-wiki A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read. == The rationale for multiple theories == A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that English a complicated language. === Homophones === First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person. Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method. Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word. Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke. === Shorter versus longer theories === Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds. Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process. === Complexity of English accents and dialects === English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English. == Freely available steno theories == There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online. === Plover theory === ''See also: [[Plover theory]]'' The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process. === Lapwing theory === ''See also: [[Lapwing theory]]'' Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency. We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. === Platinum theory === ''See also: [[Platinum theory]]'' A commercial theory for court reporting students taught through YouTube videos. == Commercially available steno theories == === Phoenix theory === ''See also: [[Phoenix theory]]'' === Magnum theory === ''See also: [[Magnum theory]]'' === StenEd theory === ''See also: [[StenEd theory]]'' === Realwrite/Realtime theory === ''See also: Realwrite/Realtime theory'' == Which steno theory should you learn? == Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages. 1e6e9889f56059063709aaed83fcdc9ad5223e05 2395 2367 2024-08-19T00:22:42Z Crorl 1668 /* Realwrite/Realtime theory */ wikitext text/x-wiki A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read. == The rationale for multiple theories == A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that English a complicated language. === Homophones === First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person. Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method. Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word. Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke. === Shorter versus longer theories === Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds. Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process. === Complexity of English accents and dialects === English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English. == Freely available steno theories == There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online. === Plover theory === ''See also: [[Plover theory]]'' The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process. === Lapwing theory === ''See also: [[Lapwing theory]]'' Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency. We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. === Platinum theory === ''See also: [[Platinum theory]]'' A commercial theory for court reporting students taught through YouTube videos. == Commercially available steno theories == === Phoenix theory === ''See also: [[Phoenix theory]]'' === Magnum theory === ''See also: [[Magnum theory]]'' === StenEd theory === ''See also: [[StenEd theory]]'' === Realwrite/Realtime theory === ''See also: [[Realwrite/Realtime theory]]'' == Which steno theory should you learn? == Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages. f59c923cc45075339ca50440c94e71ec3ffaebb0 2396 2395 2024-08-19T00:40:44Z Crorl 1668 /* The rationale for multiple theories */ wikitext text/x-wiki A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read. == The rationale for multiple theories == A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that language is complicated and all people speak their own variations of a particular language. === Homophones === First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person. Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method. Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word. Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke. === Shorter versus longer theories === Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds. Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process. === Complexity of English accents and dialects === English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English. == Freely available steno theories == There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online. === Plover theory === ''See also: [[Plover theory]]'' The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process. === Lapwing theory === ''See also: [[Lapwing theory]]'' Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency. We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. === Platinum theory === ''See also: [[Platinum theory]]'' A commercial theory for court reporting students taught through YouTube videos. == Commercially available steno theories == === Phoenix theory === ''See also: [[Phoenix theory]]'' === Magnum theory === ''See also: [[Magnum theory]]'' === StenEd theory === ''See also: [[StenEd theory]]'' === Realwrite/Realtime theory === ''See also: [[Realwrite/Realtime theory]]'' == Which steno theory should you learn? == Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages. ef6f0e8441e5ecb1da160d3aaf3e748455f0b877 2397 2396 2024-08-19T00:40:58Z Crorl 1668 /* The rationale for multiple theories */ wikitext text/x-wiki A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read. == The rationale for multiple theories == A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that language is complicated and all people speak their own individual variation of a particular language. === Homophones === First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person. Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method. Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word. Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke. === Shorter versus longer theories === Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds. Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process. === Complexity of English accents and dialects === English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English. == Freely available steno theories == There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online. === Plover theory === ''See also: [[Plover theory]]'' The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process. === Lapwing theory === ''See also: [[Lapwing theory]]'' Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency. We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. === Platinum theory === ''See also: [[Platinum theory]]'' A commercial theory for court reporting students taught through YouTube videos. == Commercially available steno theories == === Phoenix theory === ''See also: [[Phoenix theory]]'' === Magnum theory === ''See also: [[Magnum theory]]'' === StenEd theory === ''See also: [[StenEd theory]]'' === Realwrite/Realtime theory === ''See also: [[Realwrite/Realtime theory]]'' == Which steno theory should you learn? == Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages. 09ea4b7f5a55b36aec99218d752b0a0dbba5de23 2398 2397 2024-08-19T01:16:15Z Crorl 1668 /* Freely available steno theories */ Moved platinum to commercial theories and renamed commercial to proprietary. Makes more sense for when we include more hobbyist steno theories. wikitext text/x-wiki A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read. == The rationale for multiple theories == A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that language is complicated and all people speak their own individual variation of a particular language. === Homophones === First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person. Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method. Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word. Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke. === Shorter versus longer theories === Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds. Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process. === Complexity of English accents and dialects === English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English. == Open steno theories == There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online. === Plover theory === ''See also: [[Plover theory]]'' The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process. === Lapwing theory === ''See also: [[Lapwing theory]]'' Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency. We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. == Proprietary steno theories == === Platinum theory === ''See also: [[Platinum theory]]'' A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos]. === Phoenix theory === ''See also: [[Phoenix theory]]'' A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic. === Magnum theory === ''See also: [[Magnum theory]]'' A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy. === StenEd theory === ''See also: [[StenEd theory]]'' Possibly the most popular stenographic theory in the industry. === Realwrite/Realtime theory === ''See also: [[Realwrite/Realtime theory]]'' == Which steno theory should you learn? == Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages. f17be533bb7c49bd94c17a00b15821771445f46b 2399 2398 2024-08-19T07:17:48Z Crorl 1668 /* The rationale for multiple theories */ specify that these apply specifically to English wikitext text/x-wiki A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read. == The rationale for multiple theories == A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that language is complicated and all people speak their own individual variation of a particular language. === Homophones === First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person. Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method. Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word. Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke. === Shorter versus longer theories === Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds. Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process. === Varieties of English accents and dialects === English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English. == Open steno theories == There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online. === Plover theory === ''See also: [[Plover theory]]'' The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process. === Lapwing theory === ''See also: [[Lapwing theory]]'' Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency. We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. == Proprietary steno theories == === Platinum theory === ''See also: [[Platinum theory]]'' A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos]. === Phoenix theory === ''See also: [[Phoenix theory]]'' A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic. === Magnum theory === ''See also: [[Magnum theory]]'' A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy. === StenEd theory === ''See also: [[StenEd theory]]'' Possibly the most popular stenographic theory in the industry. === Realwrite/Realtime theory === ''See also: [[Realwrite/Realtime theory]]'' == Which steno theory should you learn? == Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages. cd4064579b1279bc8c706758dfc023075fec2ac2 2400 2399 2024-08-19T07:20:26Z Crorl 1668 /* Homophones */ this is a reference to phœnix theory wikitext text/x-wiki A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read. == The rationale for multiple theories == A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that language is complicated and all people speak their own individual variation of a particular language. === Homophones === First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person. Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method. Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word. Steno theories can also handle homophones by just adding an [[Phoenix theory#Disambiguation Stroke|extra stroke]] at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke. === Shorter versus longer theories === Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds. Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process. === Varieties of English accents and dialects === English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English. == Open steno theories == There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online. === Plover theory === ''See also: [[Plover theory]]'' The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process. === Lapwing theory === ''See also: [[Lapwing theory]]'' Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency. We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. == Proprietary steno theories == === Platinum theory === ''See also: [[Platinum theory]]'' A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos]. === Phoenix theory === ''See also: [[Phoenix theory]]'' A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic. === Magnum theory === ''See also: [[Magnum theory]]'' A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy. === StenEd theory === ''See also: [[StenEd theory]]'' Possibly the most popular stenographic theory in the industry. === Realwrite/Realtime theory === ''See also: [[Realwrite/Realtime theory]]'' == Which steno theory should you learn? == Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages. 086cb8b792cb50dd1de1cc42b4978730f0be4877 2401 2400 2024-08-19T07:55:52Z Crorl 1668 /* Shorter versus longer theories */ I went on a rant on English wikitext text/x-wiki A steno theory is the set of rules a stenographer learns that allows them to convert words to stenographic outlines. Ideally, the stenographic outlines are a shorthand form for the words that is quicker to input. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read. == The rationale for multiple English steno theories == A common question for those unfamiliar with stenography is, why are there multiple steno theories? And why do they all use the [[Ward Stone Ireland layout|same layout]]? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The primary reason for this is that languages are complicated and all people interpret the language they speak in their own unique way. English, in particular, has much more variance than other languages. Being one of the most spoken languages in the world, it is very unstandardised in its pronunciation and spelling rules, which vary depending on what regions of the world you are in. Unlike languages like French, the English language has no governing body that defines rules. And for the spelling rules that are somewhat standard, such as for General American English or British English spelling, they still poorly reflect the pronunciation, largely due to the [[wikipedia:History_of_English|many phonological changes]] English has undergone through the centuries. Being a language with no standard rules, a poor orthography-phonology correspondence, and billions of speakers naturally invites multiple interpretations on how to represent it in shorthand. === Homophones === First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person. Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method. Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word. Steno theories can also handle homophones by just adding an [[Phoenix theory#Disambiguation Stroke|extra stroke]] at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke. === Shorter versus longer theories === Steno theories exist on a vague continuum between short and long. By definition, short steno theories require fewer strokes for any given text — words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text because the steno outlines closely resemble the output words — long multisyllable words will require as many strokes as there are syllables. The length of a steno theory is often measured by strokes per word. * Short steno theories require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. * Long theories require less mental processing going from words to outlines, but require fast stroke speeds of around 6 strokes per second. Different individuals may be better with one or the other, or somewhere between. Choosing a theory that is just right can pay off in the learning and speed building process. Both types of theories are used in practice to reach professional certified speeds, so it is entirely the preference of the user. === Varieties of English accents and dialects === English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers and writers. For phonetic theories, it is much more practical to have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English. == Open steno theories == There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online. === Plover theory === ''See also: [[Plover theory]]'' The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process. === Lapwing theory === ''See also: [[Lapwing theory]]'' Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency. We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. == Proprietary steno theories == === Platinum theory === ''See also: [[Platinum theory]]'' A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos]. === Phoenix theory === ''See also: [[Phoenix theory]]'' A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic. === Magnum theory === ''See also: [[Magnum theory]]'' A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy. === StenEd theory === ''See also: [[StenEd theory]]'' Possibly the most popular stenographic theory in the industry. === Realwrite/Realtime theory === ''See also: [[Realwrite/Realtime theory]]'' == Which steno theory should you learn? == Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages. e3443fed537565bd7c4701d73606ce2e60f1d8bb 2402 2401 2024-08-19T08:20:34Z Crorl 1668 /* Plover theory */ I wanted to give a more complete picture of Plover theory that didn't seem to praise Lapwing as hard. wikitext text/x-wiki A steno theory is the set of rules a stenographer learns that allows them to convert words to stenographic outlines. Ideally, the stenographic outlines are a shorthand form for the words that is quicker to input. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read. == The rationale for multiple English steno theories == A common question for those unfamiliar with stenography is, why are there multiple steno theories? And why do they all use the [[Ward Stone Ireland layout|same layout]]? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The primary reason for this is that languages are complicated and all people interpret the language they speak in their own unique way. English, in particular, has much more variance than other languages. Being one of the most spoken languages in the world, it is very unstandardised in its pronunciation and spelling rules, which vary depending on what regions of the world you are in. Unlike languages like French, the English language has no governing body that defines rules. And for the spelling rules that are somewhat standard, such as for General American English or British English spelling, they still poorly reflect the pronunciation, largely due to the [[wikipedia:History_of_English|many phonological changes]] English has undergone through the centuries. Being a language with no standard rules, a poor orthography-phonology correspondence, and billions of speakers naturally invites multiple interpretations on how to represent it in shorthand. === Homophones === First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person. Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method. Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word. Steno theories can also handle homophones by just adding an [[Phoenix theory#Disambiguation Stroke|extra stroke]] at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke. === Shorter versus longer theories === Steno theories exist on a vague continuum between short and long. By definition, short steno theories require fewer strokes for any given text — words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text because the steno outlines closely resemble the output words — long multisyllable words will require as many strokes as there are syllables. The length of a steno theory is often measured by strokes per word. * Short steno theories require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. * Long theories require less mental processing going from words to outlines, but require fast stroke speeds of around 6 strokes per second. Different individuals may be better with one or the other, or somewhere between. Choosing a theory that is just right can pay off in the learning and speed building process. Both types of theories are used in practice to reach professional certified speeds, so it is entirely the preference of the user. === Varieties of English accents and dialects === English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers and writers. For phonetic theories, it is much more practical to have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English. == Open steno theories == There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online. === Plover theory === ''See also: [[Plover theory]]'' The Plover app comes with a default dictionary, <nowiki><code>main.json</code></nowiki> that we claim you can learn by learning Plover theory. It originated as Mirabai Knight’s own personal dictionary that she uses for stenocaptioning. The dictionary is very brief-heavy, and outlines are often short. Plover theory has its origins in [[NYCI Steno theory]], where Mirabai learned from, which itself is derived from [[StenEd theory]]. The documentation for Plover theory arose partly as ''an analysis of the dictionary'' donated by Mirabai, and can be understood as an understanding of how Mirabai approaches stenography. The closer your conception of stenography is to Mirabai's, the better you will be at using Plover theory. As the dictionary of a professional stenocaptioner, it contains outlines for a broad range of subject matter and can be regarded as being much more complete than many other stenographic theories, which often only contain general vocabulary and justice system terminology. Using Plover theory will allow you to approach practically any word you see out there. However, as a personal dictionary that has been used and built for many years, there are many inconsistencies on application of rules, mistaken definitions, and personalised misstrokes that come with the dictionary. Many of the rules outlined in the documentation for Plover theory are understood to guide you to the correct definition ''most'' of the time. The rules are not complete enough to judge whether or not any strange definitions are correct — this judgement is left to the intuition of the user. These shortfalls often lead to frustration in the learning process. Much of this frustration could be alleviated if people in the community went through the effort of creating a new dictionary based on Plover theory that eliminated inconsistent definitions and mistakes. However, most attempts at doing this result in the creators adding additional rules and spawning new theories, such as ''Lapwing theory''. === Lapwing theory === ''See also: [[Lapwing theory]]'' Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency. We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. == Proprietary steno theories == === Platinum theory === ''See also: [[Platinum theory]]'' A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos]. === Phoenix theory === ''See also: [[Phoenix theory]]'' A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic. === Magnum theory === ''See also: [[Magnum theory]]'' A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy. === StenEd theory === ''See also: [[StenEd theory]]'' Possibly the most popular stenographic theory in the industry. === Realwrite/Realtime theory === ''See also: [[Realwrite/Realtime theory]]'' == Which steno theory should you learn? == Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages. 37786df117480efbe61cc6bc6119827a89f65190 2403 2402 2024-08-19T08:24:51Z Crorl 1668 /* Plover theory */ added links to resources wikitext text/x-wiki A steno theory is the set of rules a stenographer learns that allows them to convert words to stenographic outlines. Ideally, the stenographic outlines are a shorthand form for the words that is quicker to input. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read. == The rationale for multiple English steno theories == A common question for those unfamiliar with stenography is, why are there multiple steno theories? And why do they all use the [[Ward Stone Ireland layout|same layout]]? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The primary reason for this is that languages are complicated and all people interpret the language they speak in their own unique way. English, in particular, has much more variance than other languages. Being one of the most spoken languages in the world, it is very unstandardised in its pronunciation and spelling rules, which vary depending on what regions of the world you are in. Unlike languages like French, the English language has no governing body that defines rules. And for the spelling rules that are somewhat standard, such as for General American English or British English spelling, they still poorly reflect the pronunciation, largely due to the [[wikipedia:History_of_English|many phonological changes]] English has undergone through the centuries. Being a language with no standard rules, a poor orthography-phonology correspondence, and billions of speakers naturally invites multiple interpretations on how to represent it in shorthand. === Homophones === First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person. Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method. Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word. Steno theories can also handle homophones by just adding an [[Phoenix theory#Disambiguation Stroke|extra stroke]] at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke. === Shorter versus longer theories === Steno theories exist on a vague continuum between short and long. By definition, short steno theories require fewer strokes for any given text — words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text because the steno outlines closely resemble the output words — long multisyllable words will require as many strokes as there are syllables. The length of a steno theory is often measured by strokes per word. * Short steno theories require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. * Long theories require less mental processing going from words to outlines, but require fast stroke speeds of around 6 strokes per second. Different individuals may be better with one or the other, or somewhere between. Choosing a theory that is just right can pay off in the learning and speed building process. Both types of theories are used in practice to reach professional certified speeds, so it is entirely the preference of the user. === Varieties of English accents and dialects === English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers and writers. For phonetic theories, it is much more practical to have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English. == Open steno theories == There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online. === Plover theory === ''See also: [[Plover theory]]'' The Plover app comes with a default dictionary, <nowiki><code>main.json</code></nowiki> that we claim you can learn by learning Plover theory. It originated as Mirabai Knight’s own personal dictionary that she uses for stenocaptioning. The dictionary is very brief-heavy, and outlines are often short. Plover theory has its origins in [[NYCI Steno theory]], where Mirabai learned from, which itself is derived from [[StenEd theory]]. The documentation for Plover theory arose partly as ''an analysis of the dictionary'' donated by Mirabai, and can be understood as an understanding of how Mirabai approaches stenography. The closer your conception of stenography is to Mirabai's, the better you will be at using Plover theory. As the dictionary of a professional stenocaptioner, it contains outlines for a broad range of subject matter and can be regarded as being much more complete than many other stenographic theories, which often only contain general vocabulary and justice system terminology. Using Plover theory will allow you to approach practically any word you see out there. However, as a personal dictionary that has been used and built for many years, there are many inconsistencies on application of rules, mistaken definitions, and personalised misstrokes that come with the dictionary. Many of the rules outlined in the documentation for Plover theory are understood to guide you to the correct definition ''most'' of the time. The rules are not complete enough to judge whether or not any strange definitions are correct — this judgement is left to the intuition of the user. These shortfalls often lead to frustration in the learning process. Much of this frustration could be alleviated if people in the community went through the effort of creating a new dictionary based on Plover theory that eliminated inconsistent definitions and mistakes. However, most attempts at doing this result in the creators adding additional rules and spawning new theories, such as ''Lapwing theory''. For details on how to set up and learn Plover theory, see [https://www.artofchording.com/ Art of Chording]. You can also reference [https://www.openstenoproject.org/learn-plover/home.html Learn Plover], but that resource is outdated. === Lapwing theory === ''See also: [[Lapwing theory]]'' Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency. We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. == Proprietary steno theories == === Platinum theory === ''See also: [[Platinum theory]]'' A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos]. === Phoenix theory === ''See also: [[Phoenix theory]]'' A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic. === Magnum theory === ''See also: [[Magnum theory]]'' A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy. === StenEd theory === ''See also: [[StenEd theory]]'' Possibly the most popular stenographic theory in the industry. === Realwrite/Realtime theory === ''See also: [[Realwrite/Realtime theory]]'' == Which steno theory should you learn? == Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages. 2d2b86362243f3f2404008e3637e2160583dc501 2404 2403 2024-08-19T08:26:21Z Crorl 1668 /* Homophones */ link to glossary#conflict wikitext text/x-wiki A steno theory is the set of rules a stenographer learns that allows them to convert words to stenographic outlines. Ideally, the stenographic outlines are a shorthand form for the words that is quicker to input. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read. == The rationale for multiple English steno theories == A common question for those unfamiliar with stenography is, why are there multiple steno theories? And why do they all use the [[Ward Stone Ireland layout|same layout]]? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The primary reason for this is that languages are complicated and all people interpret the language they speak in their own unique way. English, in particular, has much more variance than other languages. Being one of the most spoken languages in the world, it is very unstandardised in its pronunciation and spelling rules, which vary depending on what regions of the world you are in. Unlike languages like French, the English language has no governing body that defines rules. And for the spelling rules that are somewhat standard, such as for General American English or British English spelling, they still poorly reflect the pronunciation, largely due to the [[wikipedia:History_of_English|many phonological changes]] English has undergone through the centuries. Being a language with no standard rules, a poor orthography-phonology correspondence, and billions of speakers naturally invites multiple interpretations on how to represent it in shorthand. === Homophones === Homophones that have different written forms cause [[Glossary#Conflict|conflicts]] for phonetic stenographic theories. First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person. Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method. Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word. Steno theories can also handle homophones by just adding an [[Phoenix theory#Disambiguation Stroke|extra stroke]] at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke. === Shorter versus longer theories === Steno theories exist on a vague continuum between short and long. By definition, short steno theories require fewer strokes for any given text — words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text because the steno outlines closely resemble the output words — long multisyllable words will require as many strokes as there are syllables. The length of a steno theory is often measured by strokes per word. * Short steno theories require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. * Long theories require less mental processing going from words to outlines, but require fast stroke speeds of around 6 strokes per second. Different individuals may be better with one or the other, or somewhere between. Choosing a theory that is just right can pay off in the learning and speed building process. Both types of theories are used in practice to reach professional certified speeds, so it is entirely the preference of the user. === Varieties of English accents and dialects === English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers and writers. For phonetic theories, it is much more practical to have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English. == Open steno theories == There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online. === Plover theory === ''See also: [[Plover theory]]'' The Plover app comes with a default dictionary, <nowiki><code>main.json</code></nowiki> that we claim you can learn by learning Plover theory. It originated as Mirabai Knight’s own personal dictionary that she uses for stenocaptioning. The dictionary is very brief-heavy, and outlines are often short. Plover theory has its origins in [[NYCI Steno theory]], where Mirabai learned from, which itself is derived from [[StenEd theory]]. The documentation for Plover theory arose partly as ''an analysis of the dictionary'' donated by Mirabai, and can be understood as an understanding of how Mirabai approaches stenography. The closer your conception of stenography is to Mirabai's, the better you will be at using Plover theory. As the dictionary of a professional stenocaptioner, it contains outlines for a broad range of subject matter and can be regarded as being much more complete than many other stenographic theories, which often only contain general vocabulary and justice system terminology. Using Plover theory will allow you to approach practically any word you see out there. However, as a personal dictionary that has been used and built for many years, there are many inconsistencies on application of rules, mistaken definitions, and personalised misstrokes that come with the dictionary. Many of the rules outlined in the documentation for Plover theory are understood to guide you to the correct definition ''most'' of the time. The rules are not complete enough to judge whether or not any strange definitions are correct — this judgement is left to the intuition of the user. These shortfalls often lead to frustration in the learning process. Much of this frustration could be alleviated if people in the community went through the effort of creating a new dictionary based on Plover theory that eliminated inconsistent definitions and mistakes. However, most attempts at doing this result in the creators adding additional rules and spawning new theories, such as ''Lapwing theory''. For details on how to set up and learn Plover theory, see [https://www.artofchording.com/ Art of Chording]. You can also reference [https://www.openstenoproject.org/learn-plover/home.html Learn Plover], but that resource is outdated. === Lapwing theory === ''See also: [[Lapwing theory]]'' Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency. We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. == Proprietary steno theories == === Platinum theory === ''See also: [[Platinum theory]]'' A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos]. === Phoenix theory === ''See also: [[Phoenix theory]]'' A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic. === Magnum theory === ''See also: [[Magnum theory]]'' A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy. === StenEd theory === ''See also: [[StenEd theory]]'' Possibly the most popular stenographic theory in the industry. === Realwrite/Realtime theory === ''See also: [[Realwrite/Realtime theory]]'' == Which steno theory should you learn? == Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages. 46ab36a4084e409c0df46fc6f0574da3a755a133 Ward Stone Ireland layout 0 1562 2365 2024-08-10T02:25:22Z Aerick 9 Created page with "The Ward Stone Ireland (WSI) layout is the standard steno layout for all mainstream English steno theories. Its [[steno order]] is: <code>STKPWHRAO*EUFRPBLGTSDZ</code> <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500"> == History == == Chords == == Key and chord placement == The WSI layout is designed such that its steno order allows for chords that make sense phonologically. On their own, each key represents the s..." wikitext text/x-wiki The Ward Stone Ireland (WSI) layout is the standard steno layout for all mainstream English steno theories. Its [[steno order]] is: <code>STKPWHRAO*EUFRPBLGTSDZ</code> <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500"> == History == == Chords == == Key and chord placement == The WSI layout is designed such that its steno order allows for chords that make sense phonologically. On their own, each key represents the sound it is labeled with. To write the word "hot", one would press <code>HOT</code>. Keys can be combined into chords to make up for the missing sounds not on the layout (e.g. "shot" is written as <code>SHOT</code>). The WSI layout allows for many of these simple combinations that match their spellings. However, many sounds in English cannot be composed this way. Some sounds have be assigned key combinations that do not show up in English, such that there will be no ambiguity in the chord. For example, the "b" sound as in "bot" is given <code>PW</code>. Since "pw" is not a valid sound in English, it is safe to use this chord. All of these are also designed and placed such that they can be combined with other chords (e.g. combining <code>PW</code> for "b" and <code>HR</code> for "l" results in the "bl" consonant as in "blot"). 546725de627f91153025ec1d14170db6abbeef09 2389 2365 2024-08-18T23:33:53Z Crorl 1668 /* Key and chord placement */ the WSI layout was designed for English wikitext text/x-wiki The Ward Stone Ireland (WSI) layout is the standard steno layout for all mainstream English steno theories. Its [[steno order]] is: <code>STKPWHRAO*EUFRPBLGTSDZ</code> <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500"> == History == == Chords == == Key and chord placement == The WSI layout is designed such that its steno order allows for chords that follow English phonotactics (allowable sound sequences within English syllables). On their own, each key represents the sound it is labeled with. To write the word "hot", one would press <code>HOT</code>. Keys can be combined into chords to make up for the missing sounds not on the layout (e.g. "shot" is written as <code>SHOT</code>). The WSI layout allows for many of these simple combinations that match their spellings. However, many sounds in English cannot be composed this way. Some sounds have be assigned key combinations that do not show up in English, such that there will be no ambiguity in the chord. For example, the "b" sound as in "bot" is given <code>PW</code>. Since "pw" is not a valid sound in English, it is safe to use this chord. All of these are also designed and placed such that they can be combined with other chords (e.g. combining <code>PW</code> for "b" and <code>HR</code> for "l" results in the "bl" consonant as in "blot"). 963365b1af204adc87b9059a9038a9d3e79c343f 2390 2389 2024-08-18T23:36:11Z Crorl 1668 /* Key and chord placement */ links to English phonotactics for people that want to see more indepth reasoning behind the steno order wikitext text/x-wiki The Ward Stone Ireland (WSI) layout is the standard steno layout for all mainstream English steno theories. Its [[steno order]] is: <code>STKPWHRAO*EUFRPBLGTSDZ</code> <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500"> == History == == Chords == == Key and chord placement == The WSI layout is designed such that its steno order allows for chords that follow [[wikipedia:English_phonology#Phonotactics|English phonotactics]] (allowable sound sequences within English syllables). On their own, each key represents the sound it is labeled with. To write the word "hot", one would press <code>HOT</code>. Keys can be combined into chords to make up for the missing sounds not on the layout (e.g. "shot" is written as <code>SHOT</code>). The WSI layout allows for many of these simple combinations that match their spellings. However, many sounds in English cannot be composed this way. Some sounds have be assigned key combinations that do not show up in English, such that there will be no ambiguity in the chord. For example, the "b" sound as in "bot" is given <code>PW</code>. Since "pw" is not a valid sound in English, it is safe to use this chord. All of these are also designed and placed such that they can be combined with other chords (e.g. combining <code>PW</code> for "b" and <code>HR</code> for "l" results in the "bl" consonant as in "blot"). ce4205066c3a59b3b4a5274b93766c2879bce427 Wayland 0 1531 2366 2310 2024-08-13T13:36:22Z Aerick 9 Typo wikitext text/x-wiki [[wikipedia:Wayland_(protocol)|Wayland]] is a display server protocol for Linux that is slowly becoming the default on many desktop distributions. It is intended to replace the old [https://en.wikipedia.org/w/index.php?title=X_Window_System X11 Window System] that has been used for decades. Wayland is not currently compatible with Plover. Linux distributions that use GNOME or KDE Plasma 6 will run Wayland by default. This includes many of the most popular Linux distributions such as Ubuntu and Fedora. Luckily, workarounds and other approaches for using steno on Wayland systems are available. == Switch to X11 == This is the easiest workaround to run Plover. This usually involves logging out and selecting the correct session type at the login screen. Unfortunately, it is impossible to provide detailed instructions on this procedure for every single Linux distribution. However, using your favourite search engine, you can find instructions for your specific setup (try "switching to X11 on <Linux distro>"). Here are two tutorials for the two most popular Linux distributions: * [https://beebom.com/how-switch-between-wayland-xorg-ubuntu/ How to Switch Between Wayland and Xorg in Ubuntu] * [https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/ Configuring Xorg as the default GNOME session] (Fedora) == Plover plugins == There are several plugins with varying degrees of success that have enabled Plover to work on Wayland systems. Some of these include: * <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> (recommended) * <code>[https://github.com/halbGefressen/plover-output-dotool plover-output-dotool]</code> * <code>[https://github.com/svenkeidel/plover-wtype-output/tree/main plover-wtype-output]</code> <code>plover-uinput</code> is recommended as it is the most straightforward to set up. It has also been confirmed to work on GNOME. See the wiki page for set up instructions: [[plover-uinput]]. === Xwayland === [[File:Xwayland error.png|alt=Xwayland error that pops up when trying to run Plover|thumb|This error occurs on some systems that use xwayland.|408x408px]]Many applications do not work natively on Wayland, and require Xwayland to run. Plover may refuse to open on Xwayland systems and will produce the following error: <pre> Xlib.error.DisplayConnectionError: Can't connect to display ":0": b'Authorization required, but no authorization protocol specified\n' </pre> If this occurs, run the following command before opening Plover: <pre> xhost +si:localuser:$USER </pre> To run this command automatically when opening Plover, see: [[AppImage integration#Automatically run Xwayland command|AppImage integration]] == Javelin == Javelin is a keyboard firmware that features an embedded steno engine ("plug and play stenography"). It bypasses the need to install Plover (or any app) on the host machine. It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available steno writers]]. See the wiki page on [[Javelin]] for more details. 4f66b93a6f36001115a5f7724ad74efe17f95022 MediaWiki:Sidebar 8 5 2368 208 2024-08-17T03:46:43Z Aerick 9 Sentence case wikitext text/x-wiki * Plover ** mainpage|Main page ** https://www.openstenoproject.org/plover|Plover website (external) ** Beginner's_guide|Beginner's guide ** Installation_guide|Installation guide ** Configuration|Configuration ** Supported_hardware|Supported hardware ** Dictionary_format|Dictionary format ** Built-in_tools|Built-in tools ** Plugins|Plugins ** Invoke_plover_from_the_command_line|Command line ** Open_Steno_Project_timeline|Open Steno Project timeline ** Troubleshooting_issues|Troubleshooting issues * Stenography ** FAQ|FAQ ** Glossary|Glossary ** Learning_stenography|Learning stenography ** Brief_ideas|Brief ideas ** Software|Software ** Steno_layouts_and_supported_languages|Steno layouts & supported languages ** List_of_available_steno_dictionaries|List of available steno dictionaries * Miscellaneous ** The_steno_community|The steno community ** https://www.openstenoproject.org/demo/|In-browser demo ** Other_pages|Other pages * MediaWiki ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES d1ba092e6e63f67434c7258ca72aab0a4d990913 Dictionary format 0 11 2369 1974 2024-08-17T03:48:37Z Aerick 9 Aerick moved page [[Dictionary Format]] to [[Dictionary format]]: Sentence case wikitext text/x-wiki == About Strokes and Dictionaries == If you are new to stenography: * A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke. * Plover converts that input into English words and phrases on the screen, by using ''dictionaries'' * with Plover, outputs are not limited to characters and punctuation symbols... Yes, a real stenographer chords emoji😅 * Steno machines makes use of either defined software command, or a meta command, for controlling spacing and capitalization. * Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover. == Plover's Default Dictionaries == Plover comes supplied with three dictionaries: * <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. * <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]]. * <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries. You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up. By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}} == Dictionary File Formats == Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format. Some formats (including those not listed here) may require installation of a dedicated plugin. {{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}} === Limitations === There are some limitations with each format: * RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support. * The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF. * The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata. === json === The standard Plover format. Described at Dictionary format. === rtf (aka CRE) === A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm . RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications. === dct (aka Stentura, Jet, MDB, Microsoft Access) === These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named &quot;Steno&quot;, which has columns named &quot;Steno&quot;, &quot;English&quot;, and &quot;Flags&quot;. Each row represents a translation. &quot;Steno&quot; is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order &quot;English&quot; is a text column giving the text translation of that stroke. &quot;Flags&quot; is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised. Python lacks good cross-platform MDB support, so Plover reads the files using pure Python. === sgdct (CaseCat) === CaseCATalyst dictionaries have the extension &quot;.sgdct&quot;. There is often a corresponding &quot;.sgxml&quot; file, but this contains no dictionary data. Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection. The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present. One or more records follow the header. Each record gives a single translation from steno to text. The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present. The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first &quot;S&quot; as the most significant bit. Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes. Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary. == Plover Control Commands == You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands: {| class="wikitable" !Command name !Command !Default Stroke !Description |- |Add Translation |<code>{PLOVER:ADD_TRANSLATION}</code> |<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe") |Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |- |Disable Output |<code>{PLOVER:SUSPEND}</code> |<code>PHRO*F</code> (think PLOF for "PLover OFf") |Stop translating steno. With a keyboard machine, you will be able to type normally again. |- |Enable Output |<code>{PLOVER:RESUME}</code> |<code>PHRO*PB</code> (think PLON for "PLover ON") |Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |- |Toggle Output |<code>{PLOVER:TOGGLE}</code> |<code>PHROLG</code> (think PLOLG, for PLOver toGGLe) |Toggle between output being enabled and disabled. |} These commands are not in <code>commands.json</code> by default, but can be added to a dictionary: {| class="wikitable" !Command name !Command !''Suggested'' Stroke !Description |- |Look Up Stroke |<code>{PLOVER:LOOKUP}</code> |<code>PHR*UP</code> |Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |- |Suggestions |<code>{PLOVER:SUGGESTIONS}</code> |<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION) |Open and focus the plover suggestions window which will suggest alternative ways of writing |- |Configure |<code>{PLOVER:CONFIGURE}</code> |<code>PHROFG</code> (think PLOFG, for PLOver conFiG) |Open and focus the Plover configuration window. |- |Focus |<code>{PLOVER:FOCUS}</code> |<code>PHROFBGS</code> (think PLOFKS, for PLOver focus) |Open and focus the main Plover window. |- |Quit |<code>{PLOVER:QUIT}</code> |<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''') |Quit Plover entirely. |- |Set configuration |<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code> | |Set Plover config option. |} Example for <code>SET_CONFIG</code> Plover command: * <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code> * <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code> As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries. == Sending Symbols == Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "<kbd><samp>Add Translation</samp></kbd>" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser. <code>{ "SHR*UG": "¯\\_(ツ)_/¯", "TR*PL": "{^}™", "TPHA*ES": "n̶o̶ yes" }</code> == Prefix strokes == It's possible to select the translation for a stroke depends on whether the previous word is finished. Given the dictionary: <code>{ "S": "word", "/S": "{prefix^}" }</code> with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen. It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>). [https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.] == Text Formatting == === Prefixes, Infixes, and Suffixes === Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes. * <code>{^}</code> is the attach operator. * <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography. * <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>. * <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>. * <code>{in^}</code> is a prefix, e.g. <code>influx</code>. * Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash. === Glue Operator (Numbers, Fingerspelling) === Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes. Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number. * <code>{&}</code> is the glue operator. * <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made. * <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary) Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write: <code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other. === Capitalizing === Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go. ==== Capitalize Next Word ==== * <code>{-|}</code> The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work. Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>. '''Default strokes:''' * <code>KPA</code>: <code>{-|}</code> (think "cap") * <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space) ==== Capitalize Last Word ==== * <code>{*-|}</code> The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>. '''Suggested stroke:''' <code>KA*PD</code> === Uncapitalizing === ==== Uncapitalize Next Word ==== * <code>{>}</code> Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ER</code> (lower) ==== Uncapitalize Last Word ==== * <code>{*>}</code> Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code> '''Suggested stroke:''' <code>HRO*ERD</code> (lowered) === Carrying Capitalization === * <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed. In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code> In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>. The default dictionary for Plover should use these operators where appropriate. { "KW-GS": "{~|\"^}", "KR-GS": "{^~|\"}", "KA*US": "{~|'^}cause", "PREPB": "{~|(^}", "PR*EPB": "{^~|)}" } For a newline, the syntax would be <code>{^~|\n^}</code>. === Uppercasing (CAPS) === See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard. '''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code> ==== Uppercase Next Word ==== * <code>{<}</code> Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code> '''Suggested stroke:''' <code>KPA*L</code> (cap all) ==== Uppercase Last Word ==== * <code>{*<}</code> Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code> '''Suggested stroke:''' <code>*UPD</code> === Spacing === ==== Suppress Next Space ==== * <code>{^^}</code> (or <code>{^}</code>) See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]] '''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. ==== Manually Add a Space ==== * <code>{^ ^}</code> See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]] '''Default stroke:''' <code>S-P</code> ('''SP'''ace) This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]]. === Canceling Formatting of Next Word === In order to cancel formatting of the next word, use the empty meta tag as your definition: * <code>{}</code> Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word. See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]] === Format Currency === There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically. * <code>{*($c)}</code>: Standard English dollars ** <code>23{*($c)}</code> → $23 ** <code>2000.5{*($c)}</code> → $2,000.50 * <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country ** <code>100{*($c CAD)}</code> → $100 CAD * <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions. ** <code>2345{*(c円)}</code>: 2,345円 Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢ === Conditional === * <code>{=regex/text_if_match/text_if_no_match}</code> Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an". == Friendly Command Names == In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas. For detailed descriptions of the commands, see the other sections. {| class="wikitable" !Command/macro/meta !Equivalent |- |<code>{*}</code> |<code>=retrospective_toggle_asterisk</code> |- |<code>{*!}</code> |<code>=retrospective_delete_space</code> |- |<code>{*?}</code> |<code>=retrospective_insert_space</code> |- |<code>{*+}</code> |<code>=repeat_last_stroke</code> |- |<code>{^}</code> |<code>{:attach}</code> |- |<code>{^word}</code> |<code>{:attach:^word}</code> |- |<code>{word^}</code> |<code>{:attach:word^}</code> |- |<code>{^word^}</code> |<code>{:attach:word}</code> |- |<code>{&a}</code> |<code>{:glue:a}</code> |- |<code><nowiki>{-\|}</nowiki></code> |<code>{:case:cap_first_word}</code> |- |<code><nowiki>{*-\|}</nowiki></code> |<code>{:retro_case:cap_first_word}</code> |- |<code><nowiki>{~\|word}</nowiki></code> |<code>{:carry_capitalize:word}</code> |- |<code>{<}</code> |<code>{:case:upper_first_word}</code> |- |<code>{*<}</code> |<code>{:retro_case:upper_first_word}</code> |- |<code>{>}</code> |<code>{:case:lower_first_char}</code> |- |<code>{*>}</code> |<code>{:retro_case:lower_first_char}</code> |- |<code>{*($c)}</code> |<code>{:retro_currency:$c}</code> |- |<code>{#shift(a)}</code> |<code>{:key_combo:shift(a)}</code> |- |<code>{PLOVER:LOOKUP}</code> |<code>{:command:LOOKUP}</code> |- |<code>{MODE:CAPS}</code> |<code>{:mode:CAPS}</code> |- |<code>{.}</code> |<code>{:stop:.}</code> |- |<code>{,}</code> |<code>{:comma:,}</code> |- |<code>{$}</code> |<code>{:word_end}</code> |} Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box. == Undoable Line Breaks and Tabs == When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect. Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically: * <code>\n</code> or <code>\r</code> for line breaks. * <code>\t</code> for tabs. For example: * <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key. * <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key. == Macros == Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations. === Undo / Delete Last Stroke === * <code>=undo</code> The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code> === Repeat Last Stroke === * <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document. '''Suggested stroke:''' <code>#</code> === Toggle asterisk === * <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk). '''Suggested stroke:''' <code>#*</code> === Retroactively Add Space === * <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation". '''Suggested stroke:''' <code>AFPS</code> (add space) === Retroactively Delete Space === * <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball". '''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space) == Keyboard Shortcuts == Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts. '''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.'' * <code>{#}</code> is the command operator. Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces: * <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer. You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names: * <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name. If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry. === Modifier Names === If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector: {| class="wikitable" !Modifier !Command Key Names (case-insensitive) |- |Shift |<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code> |- |Control |<code>Control_L</code>, <code>Control_R</code>, <code>control</code> |- |Alt |<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code> |- |Super |<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code> |} For modifiers, use parentheses to delimit where the keys are pressed down. === Shortcut Key Names === Here are the key names you'll want to use: {| class="wikitable" !Keys !Command Key Names (case-insensitive) |- |Letters |<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code> |- |Accented Letters (international layouts) |<code>udiaeresis</code>, <code>eacute</code>, etc. |- |Numbers |<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code> |- |Control Keys |<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc. |- |F-Keys |<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code> |- |Common Named Keys |<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more] |- |Media Keys |'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code> '''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names. |} Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys]. '''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>. === Example Shortcuts === Here are some shortcuts. They are in JSON format: * <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once * <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character * <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux * <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac These next strokes are not particularly useful, but they show you what you can do with the command syntax: * <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times * <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator. Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code> === Escaping Special Characters === Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>{</code> |<code>\{</code> |- |<code>}</code> |<code>\}</code> |} <code>\</code> is a special case. It must be escaped only if there's any possible ambiguity. Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead. If you edit the JSON file directly rather than with Plover's built-in editor/ [[File:Translation add.svg|link=|32px]][[Built-in_Tools#Add_translation_dialog|Add translation feature]], you need to escape those characters in addition, according to JSON syntax: {| class="wikitable" !Symbol !Escaped Form |- |<code>\</code> |<code>\\</code> |- |<code>"</code> |<code>\"</code> |} Example: {| class="wikitable" !JSON !Plover show !Plover input !Plover output |- |<code>"ab"</code> |<code>ab</code> |<code>ab</code> |<code><nowiki><a> <b></nowiki></code> |- |<code>"\\{"</code> |<code>\{</code> |<code>\{</code> |<code><{></code> |- |<code>"\\\\{"</code> |<code>\\{</code> |<code>\\{</code> |<code><\> <{></code> |- |<code>"\""</code> |<code>"</code> |<code>"</code> |<code><"></code> |- |<code>"\\"</code> |<code>\</code> |<code>\</code> |<code><\></code> |- |<code>"\\\\"</code> |<code>\\</code> |<code>\\</code> |<code><\> <\></code> |- |<code>"\\\\\\"</code> |<code>\\\</code> |<code>\\\</code> |<code><\> <\> <\></code> |- |<code>"\n"</code> |<code>\n</code> |<code>\n</code> |<code><\n></code> |- |<code>"\\n"</code> |<code>\\n</code> |<code>\\n</code> |<code><\> <n></code> |- |<code>"\\x"</code> |<code>\x</code> |<code>\x</code> |<code><\> <x></code> |- |<code>"\\\n"</code> |<code>\\n</code> |(none) |<code><\> <\n></code> |- |<code>"\\\\n"</code> |<code>\\\n</code> |<code>\\\n</code> |<code><\> <\> <n></code> |} Column explanation: ; '''JSON:''' :how the entry is stored in the JSON file. ; '''Plover show:''' :how the entry is displayed in Plover [[File:Translation add.svg|link=|32px]] "[[Built-in_Tools#Add_translation_dialog|Add translation]]" dialog. (version 4) ; '''Plover input:''' :how the entry can be added to the dictionary using Plover "[[Built-in_Tools#Add_translation_dialog|Add translation]]" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor. ; '''Plover output:''' :what Plover will send to the emulated keyboard when that stroke is pressed. === "Do Nothing" Translation === You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs. * <code>{#}</code> an effective "null" stroke. See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]] == Output Modes == * <code>{MODE:}</code> is the mode operator Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case. '''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command. An example flow for CAPS LOCK might be: # Turn on CAPS LOCK. # Write in capital letters. # Turn off CAPS LOCK. However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what. === Reset Command === You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote> * <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code> * <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case. * <code>{MODE:RESET_SPACE}</code>: Use spaces as normal. === Modes === There are some built-in modes you can use: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:CAPS}</code> |THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |- |<code>{MODE:TITLE}</code> |The Quick Brown Fox Jumps Over The Lazy Dog. |- |<code>{MODE:LOWER}</code> |the quick brown fox jumps over the lazy dog. |- |<code>{MODE:CAMEL}</code> |theQuickBrownFoxJumpsOverTheLazyDog. |- |<code>{MODE:SNAKE}</code> |The_quick_brown_fox_jumps_over_the_lazy_dog. |} === Custom Modes === You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>. Here are some other examples: {| class="wikitable" !Dictionary Syntax !Sample Output |- |<code>{MODE:SET_SPACE:}</code> |Thequickbrownfoxjumpsoverthelazydog. |- |<code>{MODE:SET_SPACE:-}</code> |The-quick-brown-fox-jumps-over-the-lazy-dog. |- |<code>{MODE:SET_SPACE:😁}</code> |The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |} == Summary of suggested commands you can cut and paste into your dictionary == Here is a summary of the suggested commands you can cut and paste into your personal dictionary: <code>{ "PHR*UP":"{PLOVER:LOOKUP}", "PHROFG":"{PLOVER:CONFIGURE}", "PHROFBGS":"{PLOVER:FOCUS}", "PHROBGT":"{PLOVER:QUIT}", "KA*PD":"{*-|}", "KA*PS":"{MODE:CAPS}", "KPA*L":"{<}", "*UPD":"{*<}", "HRO*ER":"{>}", "HRO*ERD":"{*>}", "#":"{*+}", "#*":"{*}", "AFPS":"{*?}", "TK-FPS":"{*!}" }</code> <blockquote>{{Info-Info|text=''Note:'' The final entry '''must not''' have a trailing comma.}}</blockquote> [[Category:Plover]] bb68d3c8cf5c08da85c5b608072fe66faf52b5b3 Dictionary Format 0 1563 2370 2024-08-17T03:48:37Z Aerick 9 Aerick moved page [[Dictionary Format]] to [[Dictionary format]]: Sentence case wikitext text/x-wiki #REDIRECT [[Dictionary format]] 8d4ec9031e7c67adeb5d941ac6bd2d83b285c511 Built-in tools 0 12 2371 1978 2024-08-17T03:49:03Z Aerick 9 Aerick moved page [[Built-in Tools]] to [[Built-in tools]]: Sentence case wikitext text/x-wiki Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window. == Configure Plover == The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things. == Paper tape == Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "<kbd><samp>show paper tape</samp></kbd>" checkbox in the interface tab. == Stroke suggestions == When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "<kbd><samp>show suggestions</samp></kbd>" checkbox in the interface tab of the configuration window. == Lookup tool == A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]]. == Plugins manager == The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover. Some plugins are themselves tools. == Main window == The main window can be used to reconnect the machine, enable and disable output and manage dictionaries. === Dictionaries field === This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. <br />For each dictionary, the following information is shown: * The name of the dictionary. * A checkbox to enable and disable the dictionary. * If there's a star there, it's the one that new entries will go into by default. * A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, you are able to do so in two ways as follows: # select the dictionary , drag and drop to preferred location of priority # select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list. * If the dictionary can be read but not written by Plover, it'll show with a [[File:Dictionary readonly.svg|link=|32px]]padlock next to the number. Below the list of dictionaries, there are buttons to do the following actions: * Undo the last dictionary adding, deleting or reordering operation. * Use the [[Built-in Tools#Dictionary editor|dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in. * Remove a dictionary from the list. * Add a dictionary to the list. * [[Built-in Tools#Add translation dialog|Add an entry]] to the selected dictionary. * [[File:Up.svg|link=|32px]]Move the selected dictionaries up on the list. * Move the selected dictionaries down on the list. == Dictionary editor == The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries. At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "<kbd><samp>filter by strokes</samp></kbd>" field. And to get entries that map to translations containing specific words, use the "<kbd><samp>filter by translation</samp></kbd>" field. The strokes and translations on the list are editable. Listed below are three buttons that can be found at the bottom left-hand side: # [[File:Undo.svg|link=|32px]] '''Undo''' last action. # [[File:Remove.svg|link=|32px]] '''Remove''' selected entry/entries. # [[File:Add.svg|link=|32px]] '''Add''' a new entry. == Add translation dialog == A dialog to add an entry to a dictionary. It has three fields: * Which dictionary to add an entry to. * The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries. * What they should translate to. Below this field you should see any strokes already mapped to the translation. * A cancel button that closes the dialog. * An okay button that adds the entry and closes the dialog. [[Category:Plover]] 57c3f95472cba689d686ab0c837e71d97c17f4e7 Built-in Tools 0 1564 2372 2024-08-17T03:49:03Z Aerick 9 Aerick moved page [[Built-in Tools]] to [[Built-in tools]]: Sentence case wikitext text/x-wiki #REDIRECT [[Built-in tools]] c14d6496bae432543213a01c14e0ecfc90257e77 Invoke Plover from the command line 0 49 2373 2149 2024-08-17T03:49:32Z Aerick 9 Aerick moved page [[Invoke Plover from the Command Line]] to [[Invoke Plover from the command line]]: Sentence case wikitext text/x-wiki __TOC__ Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line. The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.) In the example below, assume that the following command should be executed: plover -s plover_plugins install plover-stenograph To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph</code>) accordingly. See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference] for other commands that can be executed. == Windows == # Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location" [[File:Windows plover shortcut right click menu.png|frameless|623x623px]] # You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here." [[File:Shift right click menu on plover console.png|frameless|617x617px]] # Type in the following command: .\plover_console.exe -s plover_plugins install plover-stenograph [[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]] # # Press Enter to run the command. [[File:Install plugin output in powershell.png|frameless|675x675px]] == Mac == # Open the Terminal app # Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter: /Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph == Linux (AppImage) == # Navigate to the folder containing the AppImage # Execute the command in the command-line (note that the filename depends on the version): ./plover.AppImage -s plover_plugins install plover-stenograph 03c1b6a299a835f180119bed463f3f74eaf06da8 Invoke Plover from the Command Line 0 1565 2374 2024-08-17T03:49:32Z Aerick 9 Aerick moved page [[Invoke Plover from the Command Line]] to [[Invoke Plover from the command line]]: Sentence case wikitext text/x-wiki #REDIRECT [[Invoke Plover from the command line]] 3fc7c2d9775910312cf71375d564c6c5b61103db Open Steno Project timeline 0 13 2375 1779 2024-08-17T03:49:54Z Aerick 9 Aerick moved page [[Open Steno Project Timeline]] to [[Open Steno Project timeline]]: Sentence case wikitext text/x-wiki The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. === September 2005 to March 2007 (18 months) === <blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute. === 2007 === <blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. === 2008 === <blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? === October 2009 === <blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. === June 2010 === <blockquote>Education</blockquote>Mirabai begins writing her [http://plover.stenoknight.com/2010/06/steno-101-lesson-zero.html Steno 101 series.] === October 2010 === <blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. === December 2010 === <blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. === April 2011 === <blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade). === October 2011 === <blockquote>Plover</blockquote>Hesky Fisher starts working on Plover. === May 2012 === <blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. === April 2013 === <blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. === July 2013 === <blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. === August 2013 === <blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus]. === September 2013 === <blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. === January 2014 === <blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects. === April 2014 === <blockquote>Hardware</blockquote>Emanuele Caruso announces the Stenoboard, an open source stenographic split 3D-printed keyboard. <!-- peace, brother [http://www.stenoboard.com/ Stenoboard] Friday, 26 April, 2024 ,--> === Summer 2015 === <blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. === August 2015 === <blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. === September 2015 === <blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. === December 2015 === <blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches. === March 2016 === <blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. === April 2016 === <blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === October 2016 === <blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig]. === November 2016 === <blockquote>Plover</blockquote>Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === December 2016 === <blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed. '''The thumb keycap was also completed.''' === The future - 2017 and onwards === Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. === July 2017 === ==== 07 July 2017 T05:09:34Z ==== <blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information. === September 2018 === <blockquote>Textbook</blockquote>Ted Morin a self-taught hobbyist stenographer, begins work on [https://www.artofchording.com/ Art of Chording!] The entire book ''was written'' and is being written, exclusively using stenography. === January 2019 === <blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. === February 2021 === <blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. === April 2021 === <blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them. === July 2021 === <blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. === January 2022 === ==== 22<sup>nd</sup> January 2022 ==== ===== Open Steno / Plover Meetup ===== <blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. --> === June 2022 === ==== 7<sup>th</sup> June 2022 ==== <blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi. === August 2023 === ==== 14 August 2023 ==== <blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator] === April 2024 === ==== 15 April 2024 ==== <blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server. [[Category:Plover]] 8b88fdf270de24702aebe44080e394c57e005360 Open Steno Project Timeline 0 1566 2376 2024-08-17T03:49:54Z Aerick 9 Aerick moved page [[Open Steno Project Timeline]] to [[Open Steno Project timeline]]: Sentence case wikitext text/x-wiki #REDIRECT [[Open Steno Project timeline]] fdffa70416047947a2b8f359f6738773b34cfcd5 Troubleshooting issues 0 14 2377 2298 2024-08-17T03:50:36Z Aerick 9 Aerick moved page [[Troubleshooting Issues]] to [[Troubleshooting issues]]: Sentence case wikitext text/x-wiki Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span> = Running in Debug Mode = Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command <pre>plover --log-level debug</pre> In particular, the exact commands are * <code>plover_console.exe --log-level debug</code> for Windows * <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS * <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span> = Issues = <span id="general"></span> == General == <span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span> === Plover does not recognize my USB keyboard or steno machine === {{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}} If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine: # Confirm your keyboard or steno machine is plugged into your computer. # On the Plover control panel, check if it states the machine is connected or disconnected. #* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message). # If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span> === Strokes no longer appear when using keyboard === If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code>&lt;space&gt;</code> (by default) to toggle arpeggiate. === When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right === Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span> == Plugins Manager == ===Disappearing plugins manager=== When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing. # In the toolbar, select <code>File → Open Config Folder</code> # Delete the <code>Plugins</code> folder # Uninstall and reinstall Plover ===Plugins not showing in the plugins manager=== Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually Installing Plugins|manually Installing Plugins]]. == Dictionary issues == By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span> === Dictionary priority === If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up. In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐. By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span> === If you have your own dictionary already === If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix). We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span> == About the default dictionaries == === main.json === <code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work. === commands.json === <code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more. Have a look inside to see some sample keyboard commands that Plover can do. === user.json === <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span> == Windows == <span id="unrecognized-keystrokes-and-other-strange-behavior"></span> === Unrecognized keystrokes and other strange behavior === * Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span> === No Output === Double check the following: * Your machine is connected * Plover’s output is set to “Enabled” * You can see strokes in the paper tape If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes. You can try: * Running Plover as an Administrator * If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span> == macOS == === No output despite keys showing up in the paper tape === # Enable Plover's output. # Open the paper tape and press some keys. #* If nothing shows up, you will first need to set up your machine. #* If you see letters showing in the paper tape, follow the rest of these instructions. # Open <code>System Settings &#x3E; Privacy & Security &#x3E; Accessibility</code>. #* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!''' # Add the <code>Plover</code> app with the <code>+</code> button. === Incompatibility with Karabiner Elements === Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover. === Unrecognized keystrokes === macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span> == Linux == === Permission denied with Gemini PR or TX Bolt === ''See: [[Installation Guide#Allow Access to Serial Ports|allow access to serial ports]].'' === Missing or jumbled output === IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>. [[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]] === Linux dynamic keyboard layout switching is not working === Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298]. === Delayed/slow output when using gnome-shell and the keyboard machine === It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround. === No authorization protocol error === If the following error occurs while trying to run Plover, your system is using Xwayland. See the wiki page on [[Wayland#Plover on Xwayland|Wayland]] for a fix. [[File:Xwayland error.png|alt=Xwayland error that pops up when trying to run Plover|center|thumb|This error occurs on some systems running Wayland.]] === Plover not working on Wayland === Plover does not officially support Wayland. See the wiki page on [[Wayland]] for workarounds and alternatives to Plover. a412e956c69e1e26ffdb2b0b4c3a9ad372b8e0c2 Troubleshooting Issues 0 1567 2378 2024-08-17T03:50:36Z Aerick 9 Aerick moved page [[Troubleshooting Issues]] to [[Troubleshooting issues]]: Sentence case wikitext text/x-wiki #REDIRECT [[Troubleshooting issues]] 072dbe28d2485a4335619ede578443bc45b3004a Learning stenography 0 17 2379 1877 2024-08-17T03:50:50Z Aerick 9 Aerick moved page [[Learning Stenography]] to [[Learning stenography]]: Sentence case wikitext text/x-wiki == Suggested Learning Route == {{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}} {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].''' '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Available Steno Theories == A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from. {| class="wikitable" |+ Freely available steno theories |- ! !! Description !! Learning resources |- | '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks |- | '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book |- | '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube |} {{Info|text=Unfortunately, all of these theories are based on General North American English.}} <!-- this section is written like an advertisement; it may need to be rewritten altogether /hj --> We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text). That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them. == Textbooks == These sites aim to teach you a steno theory, from the layout to the terminology to the strokes. === Plover theory textbooks === * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, [https://plover.neocities.org/Learn%20Plover!%20-%20Zach%20Brown,%20Zach's%20Learns%20Plover!.pdf PDF]) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. === Lapwing theory textbook === * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out [[Plugins]] for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allow you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY] *** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] b5f2bd5126b3fd31f63707dddfbd322b6a09ea93 Learning Stenography 0 1568 2380 2024-08-17T03:50:50Z Aerick 9 Aerick moved page [[Learning Stenography]] to [[Learning stenography]]: Sentence case wikitext text/x-wiki #REDIRECT [[Learning stenography]] 50f65a3b3a17e983e60ef1c5b4f33254c88e892f Steno layouts and supported languages 0 19 2381 2151 2024-08-17T03:52:13Z Aerick 9 Aerick moved page [[Steno Layouts and Supported Languages]] to [[Steno layouts and supported languages]]: Sentence case wikitext text/x-wiki A chorded system, or ''system'' for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. '''System Plugins''' allow Plover to support different machine types and languages other than English. The [[wikipedia:Stenotype|American Ward Stone Ireland Stenotype]] is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover. Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system. For systems proposed for implementation, check out the [https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems issues list]. {| class="wikitable" |- |🔴 |Not supported in Plover |- |🟠 |Work in progress, not actively updated or maintained |- |🟡 |Work in progress |- |🟢 |Stable and available for Plover |} == Languages == * English: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]] ** [[Steno Layouts and Supported Languages#Michela|Michela]] ** [[Steno Layouts and Supported Languages#Phenrsteno|Phenrsteno]] ** [[Steno Layouts and Supported Languages#Velotype|Velotype]] ** [[Steno Layouts and Supported Languages#Jackdaw|Jackdaw]] ** [[Steno Layouts and Supported Languages#Kinglet|Kinglet]] * Chinese, Mandarin (國語 / 普通话): ** [[Steno Layouts and Supported Languages#Yawei|Yawei]] ** [[Steno Layouts and Supported Languages#EXun|EXun]] ** [[Steno Layouts and Supported Languages#Suoheng|Suoheng]] * Chinese, Cantonese (粵語): ** [[Steno Layouts and Supported Languages#SanSan|SanSan]] ** [[Steno Layouts and Supported Languages#MaaJik|MaaJik]] * Czech / Čeština: ** [[Steno Layouts and Supported Languages#Czech Stenograph|Stenotype]] ** [[Steno Layouts and Supported Languages#Trillo|Trillo]] ** [[Steno Layouts and Supported Languages#Plover Czech|Plover Czech]] * Danish / Dansk: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Dutch / Nederlands: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Velotype|Velotype]] * Finnish / Suomi: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Especias|Especias]] * French / Français: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Grandjean|Grandjean]] * German / Deutsch: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]] ** [[Steno Layouts and Supported Languages#German Syllatype|Syllatype]] * Greek / Ελληνικά: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Hebrew / עברית: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Hindi / हिन्दी: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Italian / Italiano: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Michela|Michela]] * Japanese / 日本語: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Sokutaipu|Sokutaipu]] ** [[Steno Layouts and Supported Languages#StenoWord|StenoWord]] ** [[Steno Layouts and Supported Languages#Hachidori|Hachidori]] ** [[Steno Layouts and Supported Languages#Frag's Japanese System|Frag]] * Korean / 한국어: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Korean CAS|CAS]] ** [[Steno Layouts and Supported Languages#Korean Sorizava|Sorizava]] * Polish / Polski: [[Steno Layouts and Supported Languages#Trillo|Trillo]] * Portuguese / Português: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Russian / Русский: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Trillo|Trillo]] * Slovak / Slovenčina: [[Steno Layouts and Supported Languages#Trillo|Trillo]] * Spanish / Español: ** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] ** [[Steno Layouts and Supported Languages#Grandjean|Grandjean]] ** [[Steno Layouts and Supported Languages#Especias|Especias]] * Swedish / Svenska: [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]] * Thai / ภาษาไทย: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Turkish / Türkçe: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] * Vietnamese / Tiếng Việt: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]] == Stenotype (Ireland) == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500"> The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Plover''' |Mirabai Knight |English |Phonetic |Built-in |[https://github.com/openstenoproject/plover/blob/master/plover/assets/main.json 147k entries] |[[Learning Stenography|Learning Resources]] |- |🟢 '''Lapwing''' |[https://github.com/aerickt Aerick] |English |Phonetic |Built-in |[https://github.com/aerickt/steno-dictionaries/blob/main/lapwing-base.json 130k entries] |[https://lapwing.aerick.ca/ Learning Resources] |- |🟡 '''Cocoa''' |[https://github.com/Kaoffie Kaoffie] |English |Phonetic |Built-in | | |- |🟢 '''LaSalle''' |Claire Lefebvre-Yelle |French |Phonetic |Built-in |[https://github.com/morinted/la_tao_dictionary 4.2k entries] |Non-realtime-capable theory, taught at the ''École de sténographie judiciaire du Québec'' |- |🟡 '''Pluvier''' |[https://github.com/Vermoot Vermoot] |French |Phonetic | | |Realtime-capable theory based on LaSalle |- |🟢 '''Easy Korean Steno''' |Peter Park |Korean |Orthographic |Requires [https://github.com/openstenoproject/plover_python_dictionary plover-python-dictionary] |[https://github.com/petercpark/easy_korean_steno/blob/master/easy_Korean_steno_chorded.py Python Dictionary] | |- |🟢 '''Stanley's''' |[https://github.com/stanographer Stanley Sakai] |Spanish |Phonetic |Built-in |[https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json 12k entries] | |- |🟢 '''EO Variant''' |[https://github.com/roskoff Eliseo Ocampos] |Spanish |Phonetic |[https://github.com/roskoff/plover_spanish_system_eo_variant plover-spanish-system-eo-variant] |71k entries |Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules. |- |🔴 '''Marino''' | |Spanish |Phonetic | | |Spanish theory used in the Argentine Senate, along with Spanish Grandjean. [https://taquigrafica.ucoz.net/publ/edicion_numero_01/2-1-0-14 Overview] [https://www.facebook.com/stenocap Facebook Page] |- |🟢 '''Trillo Finnish''' |Priscilla Trillo |Finnish |Phonetic | |[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/Suomeksi.rtf 49k entries] |[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/PIKAKIRJOITUS%20SUOMEKSI.pdf Textbook] (in Finnish) |- |🟢 '''Aerick's''' |[https://github.com/aerickt Aerick] |Vietnamese |Orthographic |Built-in |[https://github.com/aerickt/steno-dictionaries/blob/main/viet.json 7k entries] |[https://github.com/aerickt/steno-dictionaries/wiki/Vietnamese-Steno Learning Resources] |- |🟠 '''plover-vi''' |user202729 |Vietnamese |Orthographic |[https://github.com/user202729/plover_vi <code>plover-vi</code>] | |Complete system with in built phrasing, but no longer working or maintained. |- |🟡 '''Hindi Devanagari''' |[https://github.com/winstond/hind_plover_dictionary winston] |Hindi |Phonetic |N/A |[https://github.com/winstond/hind_plover_dictionary 1,404 entries] |[https://github.com/winstond/hind_plover_dictionary Home Page] |} === Shavian === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500"> Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Magpie''' |Lynn (Ruma) |English (Shavian) |Orthographic | | |Capable of both Shavian and orthodox (Latin script) translation |} === Brazilian Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500"> Brazilian Portuguese system used by Paulo Paniago, published in the textbook ''Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador''. Also included in some Stenograph machines. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Brazilian Stenograph''' |Randall Adam Czerenda, Jucineia J. de Andrade Pereira |Portuguese |Phonetic |<code>[https://github.com/morinted/plover_portuguese plover-portuguese]</code> |4k entries<nowiki><br></nowiki>(available on the Plover Discord) |} === Czech Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500"> The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Czech Stenograph''' | |Czech |Phonetic |} === Greek Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500"> The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Greek Stenograph''' | |Greek |Phonetic |} === Hebrew Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500"> The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Hebrew Stenograph''' | |Hebrew |Phonetic |} === Turkish Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500"> The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Turkish Stenograph''' | |Turkish |Phonetic |} === Russian Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500"> The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Russian Stenograph''' | |Russian |Phonetic |} === Spanish Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500"> The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Spanish Stenograph''' | |Spanish |Phonetic |} === German Stenograph === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500"> German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''German Stenograph''' | |German |Phonetic |<code>[https://github.com/percidae/plover_german plover-german]</code> |} === Regenpfeifer === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500"> A German steno system based on a modified English stenotype layout; the <code>-Z</code> key is replaced with <code>-N</code>. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Regenpfeifer''' |[https://github.com/mkrnr Martin Körner] |German |Phonetic |[https://github.com/mkrnr/plover_regenpfeifer <code>plover-regenpfeifer</code>] |219k entries |[https://github.com/mkrnr/regenpfeifer Dictionary generator] |} === German Syllatype === A syllabic and orthographic system with the mission to be more intuitive and easy to learn. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Syllatype''' |[https://github.com/YAMEROOOO YAMERO] |German |Orthographic |[https://github.com/YAMEROOOO/plover-german-syllatype plover-german-syllatype] |5k+ entries (syllables) | |} === 42triangles' Kana System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500"> Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''42triangles' Kana System''' |42triangles |Japanese |Orthographic (Mora + Coda) Romaji-only | | |Relies on a user IME |} === Willem's Kana System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500"> A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Willem's Kana System''' |[https://github.com/Willem3141 Willem Sonke] |Japanese |Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only |[https://github.com/Willem3141/plover_japanese_kana <code>plover-japanese-kana</code>] | |Relies on a user IME |} === Danish Hjejle === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500"> A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Hjejle''' |[https://github.com/SeaLiteral Lars Rune Præstmark] |Danish |Phonetic |Built-in |[https://github.com/SeaLiteral/hjejleOrdbog 5k entries] |} === Melani === ==== Italian ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Melani''' | |Italian |Orthographic |[https://github.com/benoit-pierre/plover_melani <code>plover-melani</code>] | |[https://www.stenolab.it/ Stenolab] |} ==== Spanish ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500"> Spanish system based on the Melani Italian layout, used at MQD. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''MQD Melani''' |[https://github.com/nvdaes Noelia Ruiz Martínez] |Spanish |Phonetic |[https://github.com/nvdaes/plover_spanish_mqd <code>plover-spanish-mqd</code>] |[https://github.com/nvdaes/plover_spanish_mqd/tree/main/plover_spanish_mqd 11k entries] |} ==== Russian ==== <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500"> Not much is known about this layout; see [https://github.com/openstenoproject/plover/issues/492 th][https://github.com/parnikkapore/plover_thsteno plover-thsteno]is discussion about Russian steno. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Melani''' | |Russian |Phonetic |} === Thai Steno === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500"> A work-in-progress Thai steno system. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Thai Steno''' |Parnikkapore |Thai |Phonetic |[https://github.com/parnikkapore/plover_thsteno <code>plover-thsteno</code>] |} === Jade's Dutch System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500"> Dutch steno system that uses a modified version of the English stenotype layout with one extra <code>G</code> key on the left. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Jade's Dutch System''' |[https://github.com/Jade-GG Jade Geels] |Dutch |Phonetic |[https://github.com/Jade-GG/Plover_Dutch <code>plover-dutch</code>] |3.4k entries |} === Willem's Dutch System === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500"> Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Willem's Dutch System''' |[https://github.com/Willem3141 Willem Sonke] |Dutch |Phonetic |<code>[https://github.com/Willem3141/plover_dutch plover-dutch]</code> |7.7k entries |} == Grandjean == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500"> The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts). {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Grandjean''' | |French |Phonetic |[https://github.com/stenomax/plover_grandjean <code>plover-grandjean</code>] |[https://github.com/azizyemloul/plover-france-dict 690k+ entries] |[https://github.com/azizyemloul/plover-france-dict GitHub] |- |🔴 '''Grandjean''' | |Spanish |Phonetic | | |[http://www.estenotipiaasociacion.com/ Asociacion Española de Estenotipistas] |} == Michela == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500"> A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent. {| class="wikitable" |+ ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Michela''' |Sillabix |Italian |Phonetic |[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano 103k entries] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano Manual] |- |🟡 '''Michela''' |Sillabix |English |Phonetic |[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json 150 entries] |[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction) Manual] |- |🟡 '''Midi4Text''' |Sillabix |Italian |Orthographic |[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>] |[http://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json 95k entries] |[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA) Manual] |- |🟡 '''Midi4Text''' |Sillabix |English |Orthographic |[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>] |[https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.8).json 159k entries] |[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG) Manual] |} == Possum Palantype == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500"> The [http://www.openstenoproject.org/palantype Possum Palantype] is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some [[wikipedia:Speech-to-text_reporter|STTRs]] worldwide for writing in English. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Palantype''' | |English |Phonetic |[https://github.com/morinted/plover_palantype <code>plover-palantype</code>] |21k entries |[http://www.openstenoproject.org/palantype/ Learn Palantype] |- |🔴 '''Swedish Palantype''' | |Swedish |Phonetic |<code>[https://github.com/stenoshrink/plover_swedish_palantype plover-swedish-palantype]</code> |87k entries |[https://github.com/stenoshrink/plover_swedish_palantype/tree/master/Swedish%20theory Swedish Theory] |} === Plover German Palantype === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500"> German steno system based on the Possum Palantype layout with two additional keys. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''German Palantype''' | |German |Phonetic |[https://github.com/percidae/plover_palantype_german <code>plover-palantype-german</code>] |85k entries |} === Ruben Moor's German Palantype === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''German Palantype''' |Ruben Moor |German |Phonetic | |100k entries, with plans to expand to 2 million |[https://palantype.com/ Tutorial] |} == Trillo == === Trillo Russian === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500"> A realtime theory for Russian writing based on the Tréal machine. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Trillo Russian''' |Priscilla Trillo |Russian |Phonetic |[https://github.com/morinted/plover_russian_trillo <code>plover-russian-trillo</code>] |15k entries |[https://github.com/openstenoproject/plover/files/1533593/Russian.Theory.-.ARA.doc.zip Textbook] (in mixed English/Russian) |} === Trillo West Slavic === <img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Trillo West Slavic''' |Priscilla Trillo |Czech, Slovak, Polish |Phonetic | | |[https://github.com/Plover-Trillo/WestSlavicStenography/releases/tag/%23SlavicLanguages Textbook] |} == Yawei == === Yawei === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500"> Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Yawei''' (亚伟) | |Mandarin (Traditional / Simplified) |Symmetric Toneless Pinyin | | |[https://zh.wikipedia.org/wiki/%E4%BA%9A%E4%BC%9F%E9%80%9F%E5%BD%95 Wikipedia] |} === MaaJik === <img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''MaaJik''' (孖翼) |[https://github.com/sammdot Sammi de Guzman], [https://github.com/vatnid Samuel Lo] |Cantonese (Traditional) |Symmetric Toneless Jyutping |[https://github.com/sammdot/plover-maajik <code>plover-maajik</code>] |[https://github.com/sammdot/plover-maajik/tree/main/maajik/dictionaries 314k entries] |} === SanSan === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''SanSan''' (珊々) |[https://github.com/sammdot Sammi de Guzman] |Cantonese (Traditional) |Symmetric Toneless Jyutping | | |[https://steno.sammdot.ca/explainers Steno Explainers] |} === TCIM === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''TCIM''' (千鳥詞注) |[https://github.com/Quisette Quisette C] |Mandarin (Traditional) |Symmetric Toneless Zhuyin |[https://github.com/Quisette/plover-TCIM <code>plover-tcim</code>] |} == EXun == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500"> EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''EXun''' (E 讯) | |Mandarin (Simplified) |Symmetric Toneless Pinyin |} == Suoheng == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500"> Very little is known about the Suoheng system and there are no plans to implement it in Plover. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Suoheng''' (索恒) | |Mandarin (Simplified) |Symmetric Toneless Pinyin |} == Korean CAS == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500"> The Computer Aided Steno-machine, or CAS, was developed by [http://www.koreasteno.com/ Korea Steno] and features one of the two modern stenography systems for Korean in use today. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''CAS''' | |Korean |Orthographic (Initial/Medial/Final) with Briefs |[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern C") | |[https://github.com/nsmarkop/plover_korean/tree/master/plover_korean/system/cas Theory documentation] |} == Korean Sorizava == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500"> Sorizava, developed by a [http://www.sorizava.co.kr/ company of the same name], is the second of the modern stenography systems for Korean in use today and the more recent to have been created. The Sorizava system is not currently under development. There are partial pieces of an implementation in <code>[https://github.com/nsmarkop/plover_korean plover-korean]</code> but outside of a partial dictionary no theory materials have been obtained to progress further. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🔴 '''Sorizava''' | |Korean |Orthographic (Initial/Medial/Final) with Briefs |[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern S") | | |} == Sokutaipu == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500"> Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Sokutaipu''' (ソクタイプ) | |Japanese |Semi-Symmetric 2 Mora + 1 Coda Pure Kana |[https://github.com/na4zagin3/plover_japanese_sokutaipu <code>plover-japanese-sokutaipu</code>] |365k entries |[http://hoangmoc123.d.dooo.jp/sokutaipu.html Kana table] |} == StenoWord == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500"> The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''StenoWord''' (ステノワード) | |Japanese |Orthographic 1-Syllable Pure Kana |<code>plover-japanese-stenoword</code> |2.6k entries |[http://hoangmoc123.d.dooo.jp/Stenoword.html Kana table] |} == Frag's Japanese System == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Frag's Japanese System''' |Frag |Japanese |Symmetric 2 Mora + 2 Coda Stucture-based kanji conversion |} A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke. This is the updated version of the Japanese layout available on TypeyType. == Hachidori == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500"> Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟡 '''Hachidori''' (はちどり) |[https://github.com/Kaoffie Kaoffie] |Japanese |Symmetric 2 Mora + 2 Coda |} == Velotype == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500"> The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in [https://github.com/kqr/qweyboard Qweyboard] by kqr. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Velotype''' | |English, Dutch |Orthographic |[https://github.com/AlexandraAlter/plover_syllabic_chording <code>plover-syllabic-chording</code>] | |[https://www.velotype.com/en/homepage-eng/ Official website] |} == Jackdaw == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500"> An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Jackdaw''' | |English |Orthographic |<code>[https://github.com/user202729/plover-jackdaw-alt1 plover-jackdaw-alt1]</code> | |[https://www.openstenoproject.org/learn-plover/jackdaw.html Learn Plover! Jackdaw tutorial] |} == Kinglet == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500"> Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Kinglet''' |Zachary Brown |English |Orthographic |[https://drive.google.com/file/d/0B9Je8TDYCh1xSVRjVmQ0RUF0ejA/edit?resourcekey=0-6XylRvd298I4w4OVUc-IDg Plover 2.5.8 modified for Kinglet] | |[https://www.openstenoproject.org/learn-plover/kinglet-a-letter-based-stenotype-system.html Learn Plover! Kinglet tutorial] |} == Phenrsteno == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500"> Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Phenrsteno''' |[https://github.com/chambln Gregory Chamberlain] |English |Phonetic |[https://github.com/chambln/plover-phenrsteno <code>plover-phenrsteno</code>] |15k entries |[https://github.com/chambln/plover-phenrsteno/wiki Phenrsteno wiki] |} == Plover Czech == <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500"> {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟠 '''Plover Czech''' |[https://github.com/lambdadog Ashlynn Anderson] |Czech |Phonetic |[https://github.com/lambdadog/plover_czech <code>plover-czech</code>] |} == Especias == === Finnish Especias === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500"> An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Especias''' |[https://github.com/SeaLiteral Lars Rune Præstmark] |Finnish |Orthographic |Built-in |[https://github.com/SeaLiteral/especias Dictionary] |} === Spanish Especias === <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500"> A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals. {| class="wikitable" ! !Author !Language !Type !Plugin !Dictionary !Notes |- |🟢 '''Especias''' |[https://github.com/SeaLiteral Lars Rune Præstmark] |Spanish |Orthographic |Built-in |[https://github.com/SeaLiteral/especias Dictionary] |} [[Category:Stenography]] d57871c59ba5570c63657b7d8f213090fa896668 Steno Layouts and Supported Languages 0 1569 2382 2024-08-17T03:52:13Z Aerick 9 Aerick moved page [[Steno Layouts and Supported Languages]] to [[Steno layouts and supported languages]]: Sentence case wikitext text/x-wiki #REDIRECT [[Steno layouts and supported languages]] 99f8de75c188873da1640f88624ba35afb8429bf List of available steno dictionaries 0 20 2383 154 2024-08-17T03:52:42Z Aerick 9 Aerick moved page [[List of Available Steno Dictionaries]] to [[List of available steno dictionaries]]: Sentence case wikitext text/x-wiki Plover comes with a free 140,000 word steno dictionary. You can add other dictionaries to Plover, for foreign languages, specialist terminologies, special projects etc. In addition to creating your own personal dictionaries, you can download free, open source steno dictionaries that have been developed by others. You'll find links to many of these below. == Stenodict == You'll find many free, open source steno dictionaries at the [https://www.openstenoproject.org/stenodict/ Stenodict] website. {| class="wikitable" !Purpose !Author !Description |- |Arrows |Ted Morin |Symbolic arrows → → made easy |- |Cross Platform Movement |Ted Morin |Movement and selection across Mac, Windows, and Linux |- |Di’s Mac Movement |Diana MacDonald |Extensive Mac movement and selection |- |Di’s Vim Commands |Diana MacDonald |Vim and steno were made for each other |- |Emoji |Ted Morin |Complete Emoji dictionary 😃 |- |General Command Line |Diana MacDonald |Briefs and entries for terminal users |- |Left Hand Modifier Keys |Achim Siebert |Left-hand keyboard shortcuts in only two strokes |- |Left-side Mac Movement |Achim Siebert |Left movement shortcuts with selection for Mac |- |Markdown |Ted Morin |Best markup language meets best text entry system |- |Pokémon |Ted Morin |First 151 Pokémon written with Plover theory |- |Spectacle |Ted Morin |Window management with Spectacle, the free application for OS X |- |UK Spellings |Ted Morin |Replace US spellings in Plover's default dictionary |- |Unspaced Punctuation |Diana MacDonald |Punctuation with all the spaces suppressed |- |Vim Captioning |Mirabai Knight |Useful realtime captioning commands for Vim |} == Stanley Sakai's Steno dictionaries == Stanley Sakai's repository on GitHub - [https://github.com/stanographer/steno-dictionaries Stanley's Steno Dictionaries] {| class="wikitable" !Language !Description |- |braille.json |A starter dictionary for steno-based Braille input. |- |smalldict.json |Starter dictionary Mirabai gave Stan as a template (not actively updated or used). |- |stan-italiano.json |Dictionary started when doing an Italian class. Not very developed. |- |stanespanol.json |Main Spanish steno dictionary. |- |stanmain.json |His main English dictionary. |- |stanplover.json |Additional entries to correct formatting errors caused by RTF -> JSON conversion. |} == Diana MacDonald's repository == [https://github.com/dimonster/plover-dictionaries Diana MacDonald's dictionaries]. These include symbols, currency, smart punctuation, design, and coding dictionaries. == Other dictionaries == * [https://github.com/EPLHREU/emily-symbols Emily's Symbol Dictionary] and [https://github.com/EPLHREU/emily-modifiers Emily's Modifier Dictionary]. The first allows you to type over 100 symbols with adjustable spacing and capitalization, the second allows you to input arbitrary keyboard shortcuts. * [https://github.com/Jade-GG/plover_phrasing/ Jade's Phrasing Dictionary], a python dictionary phrasing system that lets you write entire phrases such as "we don't really want to" in one stroke. * [https://github.com/JorWat25/dictionaries/blob/main/british%20words.json JorWat's British Words], a dictionary of words and phrases found on the Wikipedia page, "Glossary of British terms not widely used in the United States". == Dictionaries for non-English languages == {| class="wikitable" !Language !Author |- |[https://github.com/stanographer/steno-dictionaries/blob/master/stan-italiano.json Italian] |Stanley Sakai |- |[https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json Spanish] |Stanley Sakai |- |[https://github.com/azizyemloul/plover-france-dict French] |Aziz Yemloul |- |[https://github.com/winstond/hind_plover_dictionary Hindi हिन्दी] |winston |} <blockquote>Note: The above foreign language dictionaries are designed to be used with the English steno keyboard layout, but it is possible to customize the steno layout. For dedicated foreign language steno layouts, see the [[Steno Layouts and Supported Languages|steno layouts & supported languages page]].</blockquote> == Commercial stenography dictionaries == Plover can also work with exported dictionaries from commercial stenography applications such as Eclipse, ProCAT and Case CATalyst. See [[Dictionary Format]] page for more information. [[Category:Stenography]] d208cd6c80f9f5ecdefcd19a3a38364cd1169c5f List of Available Steno Dictionaries 0 1570 2384 2024-08-17T03:52:42Z Aerick 9 Aerick moved page [[List of Available Steno Dictionaries]] to [[List of available steno dictionaries]]: Sentence case wikitext text/x-wiki #REDIRECT [[List of available steno dictionaries]] b6cc6b29f83d2c2be5d1ba7d9009c88d8a75d9d8 The steno community 0 21 2385 299 2024-08-17T03:53:04Z Aerick 9 Aerick moved page [[The Steno Community]] to [[The steno community]]: Sentence case wikitext text/x-wiki There are many places where you can meet the stenography community. As Plover, we are focused on the Open Steno Project's various outlets, but there are also classic closed steno resources online. == Open Steno Project == * '''[https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server] &mdash;''' Join the Discord server to chat with other steno-interested individuals. We welcome new people who may have very basic questions, looking for direction and help. We also welcome curious developers, stenography students, intermediate stenos, and professionals who are curious about Plover and its many uses compared with traditional software. Feel free also to drop by if you are looking to practice or find a new brief. * '''[https://www.facebook.com/groups/486062194804842/ Ploversteno Facebook Group]''' * '''[https://groups.google.com/forum/#!forum/ploversteno Ploversteno Google Group] &mdash;''' The Plover Google Group. Subscribe for updates and conversation. * '''[https://github.com/openstenoproject/plover/discussions GitHub Discussions]''' * '''[http://reddit.com/r/plover Unofficial Plover Subreddit: /r/Plover]''' == General Stenography == * Facebook: [https://www.facebook.com/groups/ECRSgroup/ Encouraging Court Reporting Students] * Twitter: There isn't much steno activity on Twitter, but maybe this list and this hashtag will help you get started. ** [https://twitter.com/morinted/lists/steno Steno List] ** [https://twitter.com/hashtag/stenolife?src=hash #stenolife] 4908f6a919ef2a5148553b406c405b74c7f5736e The Steno Community 0 1571 2386 2024-08-17T03:53:04Z Aerick 9 Aerick moved page [[The Steno Community]] to [[The steno community]]: Sentence case wikitext text/x-wiki #REDIRECT [[The steno community]] c3c7954ccc25ce6e185cbc8f0091845001dfeafa Other pages 0 24 2387 248 2024-08-17T03:53:23Z Aerick 9 Aerick moved page [[Other Pages]] to [[Other pages]] wikitext text/x-wiki * [[Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard]] * [[How to setup and use Plover with a Stentura 400SRT]] * [[Main Dictionary Changes]] * [[Measuring Your Real World Writing Speed]] * [[Open Steno Project Timeline]] * [[Stenotype Mnemonics for Beginners (English)]] * [[Updating V3 Dictionaries]] * [[Using Anki for Learning Stenography]] 0df14dbdee6567431336bc85f4ee6d6941499ecb Other Pages 0 1572 2388 2024-08-17T03:53:23Z Aerick 9 Aerick moved page [[Other Pages]] to [[Other pages]] wikitext text/x-wiki #REDIRECT [[Other pages]] d0d59fa17a8c0eea96117a0e8c61e92a0ab1aea3 StenEd theory 0 1573 2409 2024-08-24T07:47:25Z Notmiffed 1660 Created page with "StenEd theory is a conflict-free theory created by the StenEd company. It is considered to be a longer, and more stroke intensive theory with a focus on writing words out phonetically to completion. However, it does have a few principles and briefs that allow for shorter and faster writing. StenEd is a widely taught professional theory. The Plover theory, and by extension the lapwing theory, have the StenEd theory at their base. They have been modified to be shorter and..." wikitext text/x-wiki StenEd theory is a conflict-free theory created by the StenEd company. It is considered to be a longer, and more stroke intensive theory with a focus on writing words out phonetically to completion. However, it does have a few principles and briefs that allow for shorter and faster writing. StenEd is a widely taught professional theory. The Plover theory, and by extension the lapwing theory, have the StenEd theory at their base. They have been modified to be shorter and/or more consistent in their rules. 63c368b13430351f0a19addb412e07e4b47fecff Talk:StenEd theory 1 1574 2410 2024-08-24T07:49:23Z Notmiffed 1660 Created page with "Just wrote out a base page for the stened theory, going to try and add in the relevant links to other wiki pages and sources" wikitext text/x-wiki Just wrote out a base page for the stened theory, going to try and add in the relevant links to other wiki pages and sources 70aa00dd2802405dc19ca2244eef6ae0eba37dd4 Plover-uinput 0 1503 2411 2280 2024-08-29T14:20:54Z Thai 1675 Update plugin installation now that plugin is in plugins manager. Add note about keyboard not being supported based on maintainer conversation in discord. wikitext text/x-wiki == Background == Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups: * Debian 12 GNOME 43 * Fedora 40 GNOME 46 Note that the plugin ''does not'' support using a machine type of keyboard. == Installation and setup == === Plugin installation === # Open the plugins manager. # Find <code>plover-uinput</code> in the list. # Press <code>Install/Update</code> # Proceed with the installation. # Press <code>Restart</code> after it is finished. For more detailed steps for installation, see the [[Plugins#How to Install Plugins|plugins page]] === Post-installation setup === Add your user to the <code>input</code> group with the following command: <pre>sudo usermod -aG input $USER</pre> Create a file at <code>/etc/udev/rules.d/90-plover-uinput.rules</code> with the following content: <pre>KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"</pre> For full Unicode support (emoji, accented letters, etc), install the <code>ibus</code> or <code>fcitx5</code> package. {{Info|text=Distributions running GNOME already have the <code>ibus</code> package installed.}} '''After setup has been complete, restart your computer to ensure the changes take effect.''' == Troubleshooting == === Verify ibus is working === # On a regular keyboard, press <code>Ctrl+Shift+U</code>. # You should see an underlined <u>u</u> appear. # Type <code>1f990</code> and press enter. # You should see 🦐 appear. 752cb11d3d7f4aee3accfe4b20fb841122bcf027 Software 0 63 2412 207 2024-08-29T14:26:22Z Thai 1675 Add link to stenojig site and update history. wikitext text/x-wiki {| class="wikitable" |- ! Name ! Description ! Last update ! style="text-align: center;"| Windows ! style="text-align: center;"| macOS ! style="text-align: center;"| Linux ! style="text-align: center;"| Web ! style="text-align: center;"| Android ! style="text-align: center;"| iOS |- | [http://opensteno.org/ Plover] | Desktop application that allows anyone to use stenography to write on their computer | [https://github.com/openstenoproject/plover/releases Nov 2017] | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [http://play.typeracer.com/ Typeracer] | Multiplayer online browser-based typing game | | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | Plugins | Give extra functionality to Plover. See separate table below. | | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [https://github.com/quintopia/StenoTutor StenoTutor] | | | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [http://qwertysteno.com/Home/ QWERTYsteno] | | | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [https://github.com/SmackleFunky/StenoTray StenoTray] | | Mon Oct 31 2016 16:00:00 GMT-0700 (MST) | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [https://github.com/mkrnr/stenocomplete StenoComplete] | Provides stroke suggestions based on the currently typed letters | Mon Jul 31 2017 15:00:00 GMT-0700 (MST) | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [https://ploverdojo.appspot.com/ Plover Dojo] | Qwerty-based training and drilling site for beginners | | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ | style="text-align: center;"| ❌ |- | [https://apps.ankiweb.net/ ANKI] | Spaced repetition flashcard program. See list below. | [https://en.m.wikipedia.org/wiki/Anki_(software) Aug 2017] | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ | style="text-align: center;"| ✅ |- | Memrise | | | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| |- | [https://joshuagrams.github.io/steno-jig/ StenoJig] | |[https://github.com/JoshuaGrams/steno-jig Oct 2023] | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| |- | Stenomatic 9000 | | | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| |- | Steno Learner | | | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| |- | Fly | | | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| |- | Steno Typer | | | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| | style="text-align: center;"| |- | |http://stenoknight.com/wiki/Practice | | | | | | | |} 25f98e7cf9d554079b5e9f6fb30e8d95c9511014 Invoke plover from the command line 0 1575 2413 2024-08-29T14:39:34Z Thai 1675 First pass at creating page based on markdown to mediawiki wtih pandoc. Still needs images and captions into mediawiki format. wikitext text/x-wiki Sometimes (for instance, to [https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins manually install plugins]) you're required to run a command from the command-line. The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.) In the example below, assume that the following command should be executed: <pre>plover -s plover_plugins install plover-stenograph-usb</pre> To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly. See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference - Plover 4.0.0-dev10<sup>[external link]</sup>] for other commands that can be executed. == Compatible Versions == Ensure you are running Plover 4.x. == Windows == <ol style="list-style-type: decimal;"> <li><p>Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>.</p> <p>You can find it by right-clicking a shortcut to Plover and selecting "Open File Location"</p> Right-clicking shortcut to show Open File Location option: https://i.imgur.com/jsXQZA4.png <li><p>You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here."</p> [[File:https://i.imgur.com/vJAC3tE.png|Open Powershell option highlighted]]</li> <li><p>Type in the following command:</p> <pre>.\plover_console.exe -s plover_plugins install plover-stenograph-usb</pre> caption Command above in Powershell: https://i.imgur.com/3AG4zfA.png </li> <li><p>Press Enter to run the command.</p> Successful install screenshot with message highlighted: https://i.imgur.com/GfawoX3.png </li></ol> == Mac == <ol style="list-style-type: decimal;"> <li>Open the Terminal app</li> <li><p>Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter:</p> <pre>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb</pre></li></ol> == Linux (AppImage) == <ol style="list-style-type: decimal;"> <li><p>Execute the command in the command-line:</p> <pre>plover.AppImage -s plover_plugins install plover-stenograph-usb</pre></li></ol> fafc480a92b2ab89fdb9e330d5e39fcf59fbe349 2420 2413 2024-08-29T15:16:04Z Thai 1675 Remove converted page and redirect to correct page wikitext text/x-wiki #REDIRECT [[Invoke_Plover_from_the_command_line]] af1a205450e628518e90eafdb44a6e20bb4af00c Installation guide 0 1576 2414 2024-08-29T14:45:21Z Thai 1675 First pass at creating page based on markdown to mediawiki wtih pandoc. Still needs images and caption into mediawiki format. wikitext text/x-wiki '''Table of Contents''' * [[#install-plover-on-windows|Install Plover on Windows]] * [[#install-plover-on-mac|Install Plover on Mac]] * [[#install-plover-on-linux|Install Plover on Linux]] * [[#troubleshooting|Troubleshooting]] * [[#setting-up-my-machine|Setting up my machine]] * [[#other-installation-methods|Other installation methods]] * [[#for-developers-running-from-source|For developers: running from source]] = Install Plover on Windows = Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] == Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.] === [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] === Extract the entire folder to the location that you'd like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover. ----- = Install Plover on Mac = == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] == # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.] # Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. Plover is set up! You can run Plover like you would any other application. <blockquote>'''Note''': Other "keyboard helper"-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote> === If you had previously uninstalled Plover or upgraded your system === Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, readd <code>Plover.app</code> by repeating step 5. ----- = Install Plover on Linux = Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you're running Wayland and how to switch. == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] == To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable == Allow Access to Serial Ports == All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c "%G" /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a "file not found" error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG <group> $USER</pre> Replace <code><group></code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.''' == Error relating to xcb == You may run into the following error when trying to run Plover: <blockquote>Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem. </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> = Setting up my machine = Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine. = Other installation methods = == Other releases == You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on "Assets" and download the applicable file for your operating system. Downloading releases: https://github.com/openstenoproject/plover/assets/52895314/7e886397-e35d-41f9-b23b-2e7d22a658e9 == Homebrew Cask == If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line. == Arch AUR package == Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package]. == Gentoo git ebuild == Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies) == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet. = Troubleshooting = If you get stuck, you can: * Check the [https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues troubleshooting guide.] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can't find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic. = For developers: running from source = If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] fedd56e73672d528a86fcd2721bccb86be58c7ee 2415 2414 2024-08-29T14:45:46Z Thai 1675 Remove manual TOC wikitext text/x-wiki = Install Plover on Windows = Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] == Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.] === [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] === Extract the entire folder to the location that you'd like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover. ----- = Install Plover on Mac = == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] == # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.] # Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. Plover is set up! You can run Plover like you would any other application. <blockquote>'''Note''': Other "keyboard helper"-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote> === If you had previously uninstalled Plover or upgraded your system === Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, readd <code>Plover.app</code> by repeating step 5. ----- = Install Plover on Linux = Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux. Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you're running Wayland and how to switch. == [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] == To use it: # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable == Allow Access to Serial Ports == All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group. To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <pre>stat -c "%G" /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a "file not found" error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. Once you know the correct group, add your user to it by running the following command: <pre>sudo usermod -aG <group> $USER</pre> Replace <code><group></code> with the output of the previous command. '''Once you have added yourself to the right group, restart your computer.''' == Error relating to xcb == You may run into the following error when trying to run Plover: <blockquote>Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem. </blockquote> Ensure that the following packages are installed: * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> = Setting up my machine = Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine. = Other installation methods = == Other releases == You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on "Assets" and download the applicable file for your operating system. Downloading releases: https://github.com/openstenoproject/plover/assets/52895314/7e886397-e35d-41f9-b23b-2e7d22a658e9 == Homebrew Cask == If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line. == Arch AUR package == Two AUR packages are provided: # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package]. == Gentoo git ebuild == Currently, only a git ebuild for the <code>master</code> branch is provided. [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies) == Void Linux package == Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. Note: the plugins manager has not been packaged yet. = Troubleshooting = If you get stuck, you can: * Check the [https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues troubleshooting guide.] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can't find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic. = For developers: running from source = If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] defbbd4c4791c3ccc396ceae1bd2603063c2015a 2419 2415 2024-08-29T15:14:01Z Thai 1675 Remove converted page and redirect to correct page wikitext text/x-wiki #REDIRECT [[Installation_Guide]] 12a92be0c156770a38aab1f078e2794106220c9f Beginner's guide 0 1577 2416 2024-08-29T14:53:11Z Thai 1675 First pass at creating page based on markdown to mediawiki wtih pandoc. Still needs images and captions into mediawiki format. wikitext text/x-wiki This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge. == Overview == The main steps are: # [[#download-and-install-plover|Download and install the Plover application.]] # [[#connect-a-compatible-keyboard-or-stenography-machine|Connect a compatible keyboard or stenography (steno) machine.]] # [[#confirm-its-working|Confirm it's working.]] # [[#practice-and-learn|Practice and learn stenography using Plover.]] == Download and Install Plover == Plover works on '''Windows, Mac, and Linux'''. * [https://github.com/openstenoproject/plover/wiki/Installation-Guide '''Download and install Plover with the Installation Guide 🚀'''] * If you get stuck, see the [https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues troubleshooting guide]. == Connect a compatible keyboard or stenography machine == Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno. Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]] === Use a standard QWERTY keyboard === If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes. ==== Arpeggiate ==== With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO. Arpeggiate gif: https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif To enable arpeggiate, open Plover's main window and press <code>Configure</code>. Under "Machine" enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done. arpeggiate option: https://github.com/openstenoproject/plover/assets/52895314/5467e672-7306-43d8-83fb-6f771a5802ef ==== Rolling your strokes ==== By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke. https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it's working]]. === Use an N-key rollover (NKRO) QWERTY keyboard === An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app. Be sure to try the example later in this page to [[#confirm-its-working|confirm it's working]]. ==== Which NKRO keyboard should I get? ==== Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence). * See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards]. * See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?] === Adapt a keyboard for steno use === Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use: * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers] * [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps] You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout]. === Use a machine designed for use with Plover === Various steno enthusiasts are making and selling machines designed for use with Plover: * [https://nolltronics.com/product/ecosteno/ Ecosteno*] * [https://nolltronics.com/product/multisteno/ Multisteno*] * [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*] * [https://softhruf.love/products/soft-hruf-erl Splitography*] * [https://www.stenography.store/ Starboard*] * [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*] * [https://stenokeyboards.com/ The Uni*] (* = External link) More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover]. === Use a professional stenography machine === Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices. See the [[Supported Hardware]] page for a list of supported professional stenography machines. == Confirm it's working == Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR. === Keyboard === By default, Plover will use your keyboard as its input device. # Run Plover. # Click the Output: '''Enable''' radio button. === Write "Hello World" === To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time. <blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser. </blockquote> If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row. {| !width="6%"| Output !width="6%"| Steno Key Stroke !width="6%"| QWERTY Keys |- | hell | <code>HEL</code> | <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger ) |- | o | <code>HRO</code> | <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb) |- | , | <code>-RBGS</code> | <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger) |- | world | <code>WORLD</code> | <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger) |- | . | <code>-FPLT</code> | <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger) |} If you see different output, open the paper tape (in Plover's main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO ==== Practice sentences ==== You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website. ==== Use the correct body posture and finger placement ==== Your fingers should be curled slightly, so you press the keys using the tips of your fingers. Steno keys on QWERTY keyboard: https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place. {| !align="center"| QWERTY layout !align="center"| Maps to steno layout |- |align="center"| <code>QWER TY UIOP[</code> |align="center"| <code>STPH ** FPLTD</code> |- |align="center"| <code>ASDF GH JKL;</code> |align="center"| <code>SKWR ** RBGSZ</code> |- |align="center"| <code>CV NM</code> |align="center"| <code>AO EU</code> |} See also: * [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine] * [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros] === Stenography machine === Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses: # Run Plover and click the '''Enable''' radio button. # Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears. # On the '''Machine''' tab, select the protocol your machine uses. # Click '''Save'''. See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information. == Practice and learn == It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources]. === Which steno theory should you learn? === There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process. One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see [https://lapwing.aerick.ca Lapwing for Beginners]. '''We recommend learning either Plover theory or Lapwing theory.''' Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch. 346e0d1106e4040434a755f3f30232bb9357056b 2418 2416 2024-08-29T15:12:52Z Thai 1675 Remove converted page and redirect to correct page wikitext text/x-wiki #REDIRECT [[Beginner's_Guide]] e565f7cbdab97b85f16f34ad260bfacfaa8a763f Brief ideas 0 1578 2417 2024-08-29T15:06:00Z Thai 1675 First pass at creating page based on markdown to mediawiki wtih pandoc. Most images 404. wikitext text/x-wiki [https://www.openstenoproject.org/learn-plover/ Learn Plover!] is a great introduction to Plover's theory and has everything you need to get started writing in steno. However, there are some patterns across Plover's dictionary which are not documented there. This document aims to show some of the hidden patterns. It also suggests some others that you can consider using in your personal dictionary. <img src="http://qwertysteno.com/Images/steno-keyboard1.gif"> == In the Main Dictionary == You can start using these patterns today! === <code>SPW-</code> for int- and ent- === <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM3MzU0MjY0NzM5ODQvMzE1OTMxNDg1MzU2MTYzMDg0L1NQVy0ucG5nIn0.PmMTgOlKRGBqsKjRfj79wRGZ2FU"> This originated in the first steno theory, published by Ward Stone Ireland in the early 20th century. Today, it is also a part of Magnum steno. There are some entries in the default dictionary that use <code>SPW-</code>, although it's not documented in [https://www.openstenoproject.org/learn-plover/ Learn Plover]. Examples: * <code>SPWEPBLGT</code> for "intelligent". * <code>SPWRABGT</code> for "interact". * <code>SPWER</code> for "enter". * <code>SPWAOEURL</code> for "entirely". === <code>-FRP</code> for -mp === <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMyODQwMDc4NjA2MzM3Ly1GUlAucG5nIn0.7yN5cWWjUUj214MTDMRoactcKGY"> Usually, Plover theory (and Mirabai) uses <code>*PL</code> for the -mp sound in the end of a syllable. It can be difficult to add sounds after it. Instead, you can use <code>-FRP</code> to avoid conflicts and add <code>-B</code>, <code>-L</code> after -mp. Common uses of this are to add -mpl or -mbl to the end of a stroke: * <code>AFRP</code> for "amp" and <code>AFRPL</code> for "ample". This reduces conflicts with "apple" and "am". * <code>EUFRP</code> for "imp" === <code>-FP</code> and <code>-AOUFP</code> for -ture === <img src="https://images.discordapp.net/.eJwNxEsOhCAMANC7sB_K11APMGuvQJCgiVpC68p495m3eI-6x6FmtYl0ngHWnQuNVbPQyK3qRtSOmvvOutAJWSSX7ayXMFg_YfTJYDCYjHPBgLcR_T-LwaYUcXLw-S66X029P3evIJM.quQ3BjFFrW-Wn79vtoHMSe2U594"> <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8zMTU5MzQwNjAxNTUzNzE1MjEvMzE1OTM0NTY0MTE3OTA1NDEwL0FPLVVGUC5wbmcifQ.eOkuTdrVDh49idcRD_ztb5ZBN3c"> <code>-FP</code> is used for the -ch sound in words like "catch". The default dictionary also includes many briefs where it is used for the -ture suffix. for example: "nature", which can be stroked as <code>TPHAEUFP</code> (naich). A note: For some of these words, a tense u sound (<code>AOUFP</code>) is used for -ture instead of just the <code>-FP</code>: * <code>TPHAEUFP</code> for "nature" * <code>KRAOEFP</code> for "creature" * <code>KAOUFP</code> for "culture" * <code>TPAOEFP</code> for "feature" * <code>P*EUFP</code> for "picture" * <code>STRAOUFP</code> for "structure" * <code>SKAOUFP</code> for "sculpture" * <code>FRA*FP</code> or <code>FRAOUFP</code> for "fracture" == Non-Plover Theory Ideas == You will need to define new strokes in your dictionary with these ideas. === <code>SKP-</code> for ex- === <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzNjAwMzUwNjAxMjM3L1NLUC0ucG5nIn0.XnB7R4DxhVOeSpgr6mNIje2YCdE"> The default dictionary uses a combination of <code>KP-</code> and <code>S-</code> to make the leading ex- sound. For example: <code>KPEUT</code> for "exit" for <code>SPHRAEUPB</code> for "explain". The rules for which one to use [https://www.dropbox.com/s/fa7fch2eocubrde/Philadelphia%20Clinic.pdf?dl=0 depend on the consonant following the ex-]. If you don't like this, you can use <code>SKP-</code> for a leading ex-: * <code>SKPRAGT</code> for "extract". * <code>SKPERPBL</code> for "external". * <code>SKPHRAEUPB</code> for "explain". Note: The leading <code>SKP-</code> is also used for some phrase briefs starting with "and" in the default dictionary. For example: * <code>SKPEBG</code> for "and he can" * <code>SKPALS</code> for "and also". If this is a problem for you, you can also try <code>SK*</code> instead of <code>SKP-</code>. === <code>KPW-</code> for im- and em- === <img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzODA5ODQzMzcyMDMzL0tQVy0ucG5nIn0.V7JbEqDmCU4LLvjgKmaQG351A7s"> Examples: * <code>KPWRES</code> for "impress". === <code>-FR</code> for -m === <img src="https://images.discordapp.net/.eJwtyEEOhCAMAMC_cF_aikj0AfsAf0CAoIlaQuvJ7N_34hznMXc_zGI21SYLQN4lcc9WlHusxVbmepTYdrGJT4iqMW1nuVTAkZ_diBOS9y6QH-gtmhAdIoZhDvD5rrZd1fz-dDIgcg.eRrlLVQMtQVEDI0MRpiLtfXMmMc"> Above it's shown that <code>-FRP</code> can be used in the default dictionary for -mp. This stroke extends that idea: If <code>-PL</code> causes an issue (for example: "camel"), use <code>-FR</code>. For example: * <code>KAFRL</code> for "camel" f303279da7e21da15f269070713f06bc62be5c86 2421 2417 2024-08-29T15:19:26Z Thai 1675 Remove converted page and redirect to correct page wikitext text/x-wiki #REDIRECT [[Brief_Ideas]] 60750c8ab1ee449be1e2b7e09f83e1d53b010a49 Talk:Brief Ideas 1 1579 2422 2024-08-29T15:22:36Z Thai 1675 Add discussion of title caps. wikitext text/x-wiki I've seen some page moves to make articles first letter capped only, e.g. My page vs My Page, but this page seems to go against this. In the meantime since I can't change the sidebar, I just created a redirect from [[Brief ideas]], but if we want this one to match, we'll probably want to do a move and reverse the redirect in the future. [[User:Thai|Thai]] ([[User talk:Thai|talk]]) cced67ecd06d9b8bd34e97936bbec4f3cacda032 Open Steno Project timeline 0 13 2423 2375 2024-08-29T22:41:56Z Paulfioravanti 1672 Fixed link addresses. wikitext text/x-wiki The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. === September 2005 to March 2007 (18 months) === <blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute. === 2007 === <blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript. === 2008 === <blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions. Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard? === October 2009 === <blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project. Plover is developed on Ubuntu and is Linux-only. === June 2010 === <blockquote>Education</blockquote>Mirabai begins writing her [http://plover.stenoknight.com/2010/06/steno-101-lesson-zero.html Steno 101 series.] === October 2010 === <blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input. === December 2010 === <blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released. === April 2011 === <blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade). === October 2011 === <blockquote>Plover</blockquote>Hesky Fisher starts working on Plover. === May 2012 === <blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt. === April 2013 === <blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write. === July 2013 === <blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac. Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more. === August 2013 === <blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus]. === September 2013 === <blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons. === January 2014 === <blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects. === April 2014 === <blockquote>Hardware</blockquote>Emanuele Caruso announces the Stenoboard, an open source stenographic split 3D-printed keyboard. <!-- peace, brother [http://www.stenoboard.com/ Stenoboard] Friday, 26 April, 2024 ,--> === Summer 2015 === <blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made. === August 2015 === <blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer. === September 2015 === <blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base. === December 2015 === <blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches. === March 2016 === <blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding. === April 2016 === <blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === October 2016 === <blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig]. === November 2016 === <blockquote>Plover</blockquote>Plover version 3.1.0 is released. Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+. === September 2016 === <blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration. === December 2016 === <blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed. '''The thumb keycap was also completed.''' === The future - 2017 and onwards === Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog. Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs. === July 2017 === ==== 07 July 2017 T05:09:34Z ==== <blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information. === September 2018 === <blockquote>Textbook</blockquote>Ted Morin a self-taught hobbyist stenographer, begins work on [https://www.artofchording.com/ Art of Chording!] The entire book ''was written'' and is being written, exclusively using stenography. === January 2019 === <blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover. === February 2021 === <blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography. === April 2021 === <blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them. === July 2021 === <blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version. === January 2022 === ==== 22<sup>nd</sup> January 2022 ==== ===== Open Steno / Plover Meetup ===== <blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. --> === June 2022 === ==== 7<sup>th</sup> June 2022 ==== <blockquote>Gaming</blockquote>[https://www.paulfioravanti.com Paul Fioravanti] shares [https://www.youtube.com/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi. === August 2023 === ==== 14 August 2023 ==== <blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator] === April 2024 === ==== 15 April 2024 ==== <blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server. [[Category:Plover]] 05bd6443991e1b66339a53ab8ed704e7bf62e6d5 Supported hardware 0 10 2424 2352 2024-09-02T13:20:39Z Fieldchicken 1656 changed starboard image link (was not working before) wikitext text/x-wiki Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports. For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports: * [[Supported hardware#Stenotype machines|Professional stenotype machines]] * [[Supported hardware#Standard keyboards|Standard keyboards]] * [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin) * [[Supported hardware#DIY steno writers|DIY steno writers]] == Commercially available hobbyist writers == ''See also: [[choosing a hobbyist steno writer]].'' <!-- Group by brand (alphabetical), out of stock at bottom -->{| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_nDp8XBE.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- |[https://www.lim.au/#/hardware Jarne] |[https://shop.chenonetta.com Chenonetta Creations] |<img alt="Jarne" src="https://lim.au/assets/assets/image/jarne1.jpg" width="300px"/> A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries. Wireless charging, tenting and tripod mount options available as extras. '''Stock status''' (August 2024): Ships within 3 weeks |Yes |$250-$350 |}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]]. ''See also: [[out of production writers]].'' = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Video game controllers]] = DIY steno writers = See: [[DIY steno writers]] [[Category:Plover]] 6e1e3376155dc66315b8ecf16504f32e6c818e98 2425 2424 2024-09-02T13:21:26Z Fieldchicken 1656 wikitext text/x-wiki Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports. For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports: * [[Supported hardware#Stenotype machines|Professional stenotype machines]] * [[Supported hardware#Standard keyboards|Standard keyboards]] * [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin) * [[Supported hardware#DIY steno writers|DIY steno writers]] == Commercially available hobbyist writers == ''See also: [[choosing a hobbyist steno writer]].'' <!-- Group by brand (alphabetical), out of stock at bottom -->{| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_nDp8XBE.png" width="300px" align="right" /> An ergonomic steno keyboard with hot-swappable choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- |[https://www.lim.au/#/hardware Jarne] |[https://shop.chenonetta.com Chenonetta Creations] |<img alt="Jarne" src="https://lim.au/assets/assets/image/jarne1.jpg" width="300px"/> A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries. Wireless charging, tenting and tripod mount options available as extras. '''Stock status''' (August 2024): Ships within 3 weeks |Yes |$250-$350 |}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]]. ''See also: [[out of production writers]].'' = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Video game controllers]] = DIY steno writers = See: [[DIY steno writers]] [[Category:Plover]] 95d3c127c2333c16ba5cc0f037e985da5588e4f1 2432 2425 2024-09-15T08:34:17Z Tharelia 1661 Update Jarne avialability for September wikitext text/x-wiki Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports. For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports: * [[Supported hardware#Stenotype machines|Professional stenotype machines]] * [[Supported hardware#Standard keyboards|Standard keyboards]] * [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin) * [[Supported hardware#DIY steno writers|DIY steno writers]] == Commercially available hobbyist writers == ''See also: [[choosing a hobbyist steno writer]].'' <!-- Group by brand (alphabetical), out of stock at bottom -->{| class="wikitable sortable" |- ! Product Name ! Manufacturer ! About !Javelin?(embedded steno) ! Price (USD) |- | [https://stenomod.blogspot.com TinyMod] | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock |No | $140 (stock)<br>$180 (silent) |- | [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site] | rowspan="2" | [https://nolltronics.com/ Nolltronics] | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock |No | $95 |- | [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site] | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock |No | $170 |- |[https://stenokeyboards.com/products/asterisk-keyboard Asterisk] | rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards] |<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" /> A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar. '''Stock status''' (June 2024): In stock |Yes |$50 |- | [https://www.stenokeyboards.com/products/the-uni-v4 The Uni] | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock |Yes | $100 |- | [https://stenokeyboards.com/products/polyglot-keyboard Polyglot] | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" /> A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock |Yes | $125 |- | [https://www.stenography.store/ Starboard] | [https://www.stenography.store/ Stenography Store] | <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_nDp8XBE.png" width="300px" align="right" /> An ergonomic steno keyboard with hot-swappable choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock |Yes | $90 |- |[https://www.lim.au/#/hardware Jarne] |[https://shop.chenonetta.com Chenonetta Creations] |<img alt="Jarne" src="https://lim.au/assets/assets/image/jarne1.jpg" width="300px"/> A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries. Wireless charging, tenting and tripod mount options available as extras. '''Stock status''' (September 2024): In stock |Yes |$250-$350 |}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]]. ''See also: [[out of production writers]].'' = Stenotype machines = <img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span> == Supported protocols == Plover supports several protocols that are in use by various machines: * '''Stentura serial''': most machines by Stenograph and many others. * '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series. * '''ProCAT''': protocol used by all ProCAT machines. * '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol. * '''Treal''': used only by the Treal from Word Technologies. * '''Passport''': used only by the Passport Writer from Advantage Software. This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span> == Known supported stenotypes == The following machines have been confirmed by users to work with Plover after actually trying it: {| class="wikitable" |- ! Product Name ! Manufacturer ! Protocol/Connection ! Comments |- | Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |- | Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, ''maybe'') | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |- | Flash Writer | ProCAT | TX Bolt | Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code> |- | Gemini2 | Neutrino Group | Gemini PR (serial) | |- | Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2] |- | Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |- | Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup. |- | Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |- | Infinity Genesis | Neutrino Group | Gemini PR (serial) | |- | Passport | Advantage Software | Passport (USB) | |- | Passport Touch | Advantage Software | USB, Bluetooth | While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB  |- | Revolution Grand | Neutrino Group | Gemini PR (serial) | |- | Stentura 400 SRT | Stenograph | Stentura (serial) | rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]] |- | Stentura 200 SRT | Stenograph | Stentura (serial) |- | Stentura 500 | Stenograph | Stentura (serial) |- | Stentura 8000 and 8000LX | Stenograph | Stentura (serial) |- | Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]] |- | Tréal | Word technologies | Treal (USB) | |- | Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”. |- | Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |} = Standard keyboards = If you cannot purchase a steno keyboard, you can also use a standard computer keyboard. See: [[using a standard keyboard with Plover]]. = Video game controllers = See: [[Video game controllers]] = DIY steno writers = See: [[DIY steno writers]] [[Category:Plover]] d199df20184ee2f86c3d301360705280f8617cf9 Choosing a steno theory 0 1561 2426 2404 2024-09-03T23:16:42Z Crorl 1668 /* Realwrite/Realtime theory */ added text wikitext text/x-wiki A steno theory is the set of rules a stenographer learns that allows them to convert words to stenographic outlines. Ideally, the stenographic outlines are a shorthand form for the words that is quicker to input. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read. == The rationale for multiple English steno theories == A common question for those unfamiliar with stenography is, why are there multiple steno theories? And why do they all use the [[Ward Stone Ireland layout|same layout]]? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The primary reason for this is that languages are complicated and all people interpret the language they speak in their own unique way. English, in particular, has much more variance than other languages. Being one of the most spoken languages in the world, it is very unstandardised in its pronunciation and spelling rules, which vary depending on what regions of the world you are in. Unlike languages like French, the English language has no governing body that defines rules. And for the spelling rules that are somewhat standard, such as for General American English or British English spelling, they still poorly reflect the pronunciation, largely due to the [[wikipedia:History_of_English|many phonological changes]] English has undergone through the centuries. Being a language with no standard rules, a poor orthography-phonology correspondence, and billions of speakers naturally invites multiple interpretations on how to represent it in shorthand. === Homophones === Homophones that have different written forms cause [[Glossary#Conflict|conflicts]] for phonetic stenographic theories. First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person. Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method. Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word. Steno theories can also handle homophones by just adding an [[Phoenix theory#Disambiguation Stroke|extra stroke]] at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke. === Shorter versus longer theories === Steno theories exist on a vague continuum between short and long. By definition, short steno theories require fewer strokes for any given text — words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text because the steno outlines closely resemble the output words — long multisyllable words will require as many strokes as there are syllables. The length of a steno theory is often measured by strokes per word. * Short steno theories require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. * Long theories require less mental processing going from words to outlines, but require fast stroke speeds of around 6 strokes per second. Different individuals may be better with one or the other, or somewhere between. Choosing a theory that is just right can pay off in the learning and speed building process. Both types of theories are used in practice to reach professional certified speeds, so it is entirely the preference of the user. === Varieties of English accents and dialects === English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers and writers. For phonetic theories, it is much more practical to have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English. == Open steno theories == There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online. === Plover theory === ''See also: [[Plover theory]]'' The Plover app comes with a default dictionary, <nowiki><code>main.json</code></nowiki> that we claim you can learn by learning Plover theory. It originated as Mirabai Knight’s own personal dictionary that she uses for stenocaptioning. The dictionary is very brief-heavy, and outlines are often short. Plover theory has its origins in [[NYCI Steno theory]], where Mirabai learned from, which itself is derived from [[StenEd theory]]. The documentation for Plover theory arose partly as ''an analysis of the dictionary'' donated by Mirabai, and can be understood as an understanding of how Mirabai approaches stenography. The closer your conception of stenography is to Mirabai's, the better you will be at using Plover theory. As the dictionary of a professional stenocaptioner, it contains outlines for a broad range of subject matter and can be regarded as being much more complete than many other stenographic theories, which often only contain general vocabulary and justice system terminology. Using Plover theory will allow you to approach practically any word you see out there. However, as a personal dictionary that has been used and built for many years, there are many inconsistencies on application of rules, mistaken definitions, and personalised misstrokes that come with the dictionary. Many of the rules outlined in the documentation for Plover theory are understood to guide you to the correct definition ''most'' of the time. The rules are not complete enough to judge whether or not any strange definitions are correct — this judgement is left to the intuition of the user. These shortfalls often lead to frustration in the learning process. Much of this frustration could be alleviated if people in the community went through the effort of creating a new dictionary based on Plover theory that eliminated inconsistent definitions and mistakes. However, most attempts at doing this result in the creators adding additional rules and spawning new theories, such as ''Lapwing theory''. For details on how to set up and learn Plover theory, see [https://www.artofchording.com/ Art of Chording]. You can also reference [https://www.openstenoproject.org/learn-plover/home.html Learn Plover], but that resource is outdated. === Lapwing theory === ''See also: [[Lapwing theory]]'' Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency. We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki]. == Proprietary steno theories == === Platinum theory === ''See also: [[Platinum theory]]'' A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos]. === Phoenix theory === ''See also: [[Phoenix theory]]'' A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic. === Magnum theory === ''See also: [[Magnum theory]]'' A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy. === StenEd theory === ''See also: [[StenEd theory]]'' Possibly the most popular stenographic theory in the industry. === Realwrite/Realtime theory === ''See also: [[Realwrite/Realtime theory]]'' Unique among steno theories for using chords not directly based on the original Ward Stone Ireland. The theory makes use of chords that represent more orthography. The theory was built with realtime writing in mind, unlike other theories which existed before computer transcription and were adapted. == Which steno theory should you learn? == Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages. 3857875623047956aad6b2fa596d08f6502bec01 User:Notmiffed 2 1580 2427 2024-09-07T23:44:00Z Notmiffed 1660 creation...? wikitext text/x-wiki Empty Test Page For Now 84b966ac96c240b837b96659b920247fd2a49d3b Lapwing theory 0 1581 2428 2024-09-07T23:57:55Z Notmiffed 1660 creation of page with link wikitext text/x-wiki Lapwing theory was created in 2022 by a community member to address some conflicts of the Plover theory. It shares many principles but has a strong focus on consistency. The online textbook for learning [https://lapwing.aerick.ca/ Lapwing theory can be found here.] 56166fcd6212372fb4defda42620a1901a13fbcb Learning stenography 0 17 2429 2379 2024-09-10T09:37:35Z Aqwek 1679 /* Other Typing Sites */ wikitext text/x-wiki == Suggested Learning Route == {{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}} {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].''' '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Available Steno Theories == A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from. {| class="wikitable" |+ Freely available steno theories |- ! !! Description !! Learning resources |- | '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks |- | '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book |- | '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube |} {{Info|text=Unfortunately, all of these theories are based on General North American English.}} <!-- this section is written like an advertisement; it may need to be rewritten altogether /hj --> We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text). That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them. == Textbooks == These sites aim to teach you a steno theory, from the layout to the terminology to the strokes. === Plover theory textbooks === * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, [https://plover.neocities.org/Learn%20Plover!%20-%20Zach%20Brown,%20Zach's%20Learns%20Plover!.pdf PDF]) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. === Lapwing theory textbook === * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out [[Plugins]] for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allows you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. * [https://nitrotype.com Nitro Type] '''''Best to use 1ms key delay for all keys to register''''' A competitive typing game with a car racing theme. It uses a stop on error method, which can make multistroking hard. It also has a lot of science words and other less common words. There is also a [https://nitrotype.com/team/STENO steno team] for people to join. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY] *** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] 22b8549c781cedf860681891484ab106de11cdda 2430 2429 2024-09-10T09:38:14Z Aqwek 1679 /* Other Typing Sites */ wikitext text/x-wiki == Suggested Learning Route == {{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}} {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].''' '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Available Steno Theories == A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from. {| class="wikitable" |+ Freely available steno theories |- ! !! Description !! Learning resources |- | '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks |- | '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book |- | '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube |} {{Info|text=Unfortunately, all of these theories are based on General North American English.}} <!-- this section is written like an advertisement; it may need to be rewritten altogether /hj --> We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text). That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them. == Textbooks == These sites aim to teach you a steno theory, from the layout to the terminology to the strokes. === Plover theory textbooks === * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, [https://plover.neocities.org/Learn%20Plover!%20-%20Zach%20Brown,%20Zach's%20Learns%20Plover!.pdf PDF]) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. === Lapwing theory textbook === * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out [[Plugins]] for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allows you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. * [https://nitrotype.com Nitro Type] '''''Best to use 1ms key delay for all keys to register''''' A competitive typing game with a car racing theme. Pressing enter skips a the next word. It uses a stop on error method, which can make multistroking hard. It also has a lot of science words and other less common words. There is also a [https://nitrotype.com/team/STENO steno team] for people to join. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY] *** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] 6f1c92c2aba7e91478a786316e6b67c23b922518 2431 2430 2024-09-10T09:39:04Z Aqwek 1679 /* Other Typing Sites */ wikitext text/x-wiki == Suggested Learning Route == {{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}} {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].''' '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Available Steno Theories == A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from. {| class="wikitable" |+ Freely available steno theories |- ! !! Description !! Learning resources |- | '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks |- | '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book |- | '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube |} {{Info|text=Unfortunately, all of these theories are based on General North American English.}} <!-- this section is written like an advertisement; it may need to be rewritten altogether /hj --> We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text). That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them. == Textbooks == These sites aim to teach you a steno theory, from the layout to the terminology to the strokes. === Plover theory textbooks === * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, [https://plover.neocities.org/Learn%20Plover!%20-%20Zach%20Brown,%20Zach's%20Learns%20Plover!.pdf PDF]) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. === Lapwing theory textbook === * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out [[Plugins]] for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allows you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. * [https://nitrotype.com Nitro Type] '''''Best to use 1ms key delay for all keys to register depending on your operating system''''' A competitive typing game with a car racing theme. Pressing enter skips a the next word. It uses a stop on error method, which can make multistroking hard. It also has a lot of science words and other less common words. There is also a [https://nitrotype.com/team/STENO steno team] for people to join. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY] *** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] 3a441b988b41627fa156b3e452956dca27e5ccbc 2438 2431 2024-11-18T00:01:55Z Waldyrious 1699 /* Cheat sheets */ replace dead links with working ones wikitext text/x-wiki == Suggested Learning Route == {{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}} {| class="wikitable" !Learning Level !Suggestion |- |Absolute Beginner |'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].''' '''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover. '''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |- |Learning the Keyboard |'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this. |- |Learning the keyboard (QWERTY) |'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''. |- |Beginner vocabulary |'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover]. '''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words. '''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons. '''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |- |Intermediate vocabulary |'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck. '''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |- |~30wpm |'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |- |~50wpm |'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier). |- |~100wpm |'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |} == Available Steno Theories == A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from. {| class="wikitable" |+ Freely available steno theories |- ! !! Description !! Learning resources |- | '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks |- | '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book |- | '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube |} {{Info|text=Unfortunately, all of these theories are based on General North American English.}} <!-- this section is written like an advertisement; it may need to be rewritten altogether /hj --> We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text). That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them. == Textbooks == These sites aim to teach you a steno theory, from the layout to the terminology to the strokes. === Plover theory textbooks === * [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary. * '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, [https://plover.neocities.org/Learn%20Plover!%20-%20Zach%20Brown,%20Zach's%20Learns%20Plover!.pdf PDF]) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type]. === Lapwing theory textbook === * '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5. == Glossary == For a glossary of terms used in stenography and plover, see the [[Glossary]] page. == Tools == Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as: * Lookup. Write words here to see how you can write them. * Stroke Suggestions. Suggests alternative ways of writing the words you write. * Paper Tape. Shows which keys Plover thinks you're pressing. == Plugins == Check out [[Plugins]] for how to install plugins. Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins. Here are 3 community favorites. * [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have. * [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently. * [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell. == Practice writing using stenography == === Practice material and tools made for stenography === * [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!) * [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display. * [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates. * [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover. * [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover. * [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''. * [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash. * [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are. * [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases. === Dictation === If you want to eventually caption speakers, you will need to be able to take dictation. * [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM. * Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue. * Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier. * [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control. * [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation]. * [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to. * [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds. * [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM. * [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM. * [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike. * [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM. * [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required. * [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required. * Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed). === Volunteer Projects Needing Transcription === * [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts. === Other Typing Sites === Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric. Depending on the site, you might want to adjust Plover's spacing setting (before or after). * [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary. * [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms. * [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well: {| class="wikitable" !setting name !setting !notes |- |freedom mode |on |Allows you to delete any word, even if typed wrong |- |strict space |on |Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |- |stop on error |off |Allows you to write incorrect characters |- |confidence mode |off |Allows you to backspace |- |quick end |off |If on, means that the test will end as soon as the last word is typed, even if incorrect |- |indicate typos |below/replace |Show typos |} * [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word. * [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]). * [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words. * [https://nitrotype.com Nitro Type] '''''Best to use 1ms key delay for all keys to register depending on your operating system''''' A competitive typing game with a car racing theme. Pressing enter skips a the next word. It uses a stop on error method, which can make multistroking hard. It also has a lot of science words and other less common words. There is also a [https://nitrotype.com/team/STENO steno team] for people to join. == Flashcards == You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials. == Cheat sheets == Quick image and text references. * QWERTY to steno layout ** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout] ** Steno keys on top of a QWERTY keyboard *** [http://i.imgur.com/qIh1iJ0.png Full keyboard] *** [[:File:Steno keys_on_QWERTY keyboard by Jen.png|Faded QWERTY]] *** [[:File:Steno keys on QWERTY keyboard, with finger positions.png|Faded QWERTY, with finger positions]] * [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet] ** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board] ** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key] ** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order] ** Quick text references for: *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters] *** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers] * [https://steno.sammdot.ca/explainers Steno Explained] ** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology] ** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics] ** [https://steno.sammdot.ca/plover-numbers.png Numbers] ** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling] ** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained] [[Category:Stenography]] 625e80dd0baf844ccac446b3429ba00f7fc397a6 User:MarjorieJowett 2 1582 2433 2024-10-13T06:33:32Z MarjorieJowett 1681 Created page with "The science behind ABA treatment is based in evidence-based strategies that trigger significant enhancements in the lives of youngsters with autism in Atlanta, Georgia. With a concentration on individualized therapy plans and data-driven choices, ABA therapy delivers an organized method to ensure beneficial behavior change. As family members hunt for ABA therapy in Atlanta, they may be actually self-assured that they're selecting an approach that has been actually reveal..." wikitext text/x-wiki The science behind ABA treatment is based in evidence-based strategies that trigger significant enhancements in the lives of youngsters with autism in Atlanta, Georgia. With a concentration on individualized therapy plans and data-driven choices, ABA therapy delivers an organized method to ensure beneficial behavior change. As family members hunt for ABA therapy in Atlanta, they may be actually self-assured that they're selecting an approach that has been actually revealed to work. Whether by means of in-home services or even school-based support, ABA therapy is actually transforming lives, inspiring kids, and supplying chance for loved ones navigating the difficulties of autism.<br><br>my website :: [https://vuf.minagricultura.gov.co/Lists/Informacin%20Servicios%20Web/DispForm.aspx?ID=9286934 Article Source] b08a9c0a424ae32c6d54858343f27a7bfd06147d FAQ 0 15 2434 2166 2024-11-05T00:57:09Z Aqwek 1679 /* Why isn't steno more popular than QWERTY? */ wikitext text/x-wiki == Plover == === What is stenography? === <youtube>62l64Acfidc</youtube> Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s. Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text. === How fast can stenographers write? === {| class="wikitable" !Method !Typical Speed |- |Handwriting |30 WPM |- |Average Typist |40 WPM |- |Fast Typist |120 WPM |- |Fastest typists |200 WPM |- |Voice Writer |180 WPM |- |Average Speech |200 WPM |- |Amateur Stenographer |160 WPM |- |Professional Stenographer |225 WPM |- |Steno World Record |370 WPM |} Professional stenographers with a lot of experience can transcribe spoken English at up to 300 words per minute for sustained periods of time (longer than a minute). By comparison, the fastest typists are limited to around 230 words per minute for texts with comparable material (though, shorter in length). Conceivably, with practice, amateur steno users could reach 160-200 words per minute. (also see [[FAQ#How long does it take to learn?|How long does it take to learn?]]) === What is Plover? === Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine. It is a small Python application that you run in the background. It translates the steno strokes to text (by emulating keyboard presses), so you can use steno with any computer program. Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]]. === Why "Plover"? === The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here]. === Who's responsible for Plover's development? === Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current maintainer is Sammi de Guzman (Jen). === Why does Plover exist? === Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals. At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, QWERTY is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is. So Plover has a double-pronged approach: # Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out. # Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future. === How does Stenography compare to typing? === * Typing is (usually) data entry with single fingers Most likely, you are using a QWERTY or Dvorak keyboard layout to type everything out character by character. If you have ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (QWERTY, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu]. Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed. * Stenography is chorded data entry, using multiple fingers However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together." — [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet. "Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor]. Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system. === What does using Plover look like? === {| class="wikitable" !'''QWERTY versus Stenography on Steno Arcade''' !'''Plover wins the race!''' !'''Demonstration of Plover with Qwerty Keyboard''' |- |[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)] |[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)] |[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)] |- |'''Realtime Text to Speech with Plover''' |'''Coding in Stenography, Quick Demo''' |'''Rails 7: The Steno Demo''' |- |[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)] |[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)] |[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)] |} === How does it compare to alternative layouts like Dvorak and Colemak? === In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://youtu.be/nETlhthG22Q the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). Barbara Blackburn, arguably one of the fastest Dvorak typists, has achieved a peak speed of 212wpm on Dvorak. In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke. === If I learn steno, will it make using QWERTY harder? === If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed). From reports of users in the [[The_Steno_Community |Plover discord]], most people don't seem to experience this with steno and QWERTY in the same way. This could be because: * Chorded input is very different from typing, so the muscle memory doesn't interfere as much * Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys) Although some people have reported difficulty in typing after learning steno, this seems to be limited to a smaller group of people. === Why isn't steno more popular than QWERTY? === There are a number of possible reasons: # Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace. # The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars. # It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]]) # Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently. # Stenography is not mainstream, being a niche profession that most people have never heard of. === Will stenography be replaced with automatic voice recognition? === Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Especially for events with multiple speakers, a lot of equipment is needed just to record audio (quality microphones for each speaker, mixers, etc). Additionally, a human, in the form of an audio engineer, is still required to monitor the audio and ensure everyone's microphone is working or clipped on properly. For many situations, having a stenographer present is the easier solution. Stanley Sakai has an [https://medium.com/swlh/in-an-age-of-high-definition-digital-audio-why-do-we-still-use-human-stenographers-60ca91a65f39 in depth article] covering the recording issue with a lot more detail. === What theory is Plover's default dictionary based on? === It's basically Mirabai Knight's personal dictionary from many years ago, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own. === Where can I find other people who use Plover? === Check out these [[The Steno Community|links to the community]]. === How can I help? === The Open Steno Project is run by volunteers. You can help by: * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code] * [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues] * [[Plover Wiki#Contributing to the Wiki|Editing this wiki]] * [[The Steno Community|Getting involved in the community]] * [https://www.openstenoproject.org/donate/ Donating money] * Telling people about Open Steno, Plover, and stenography! == Using Plover == === How can I get started? === The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn. === What hardware do I need? === You can just get started and try Plover out on the keyboard you are using right now. However, some keyboards will be easier to use for stenography than others. Features to look out for are: * [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]]. * No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno. * Lighter keys, so it's less fatiguing. [[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]]. === Can I still get by without a professional machine? === Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]]. This isn't to say that professional machines do not have some benefits: * They do not require a computer, instead they can store text on the machine * The pressure and sensitivity can be adjusted on the fly and per key * The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key [https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have. === Can I use Plover for normal computer use? === Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information. The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon. Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made: * [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary) * [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5) * [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free * [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji === Can I use Plover for programming? === Yes, and many people do! That being said, it is a huge time investment, and makes sense mostly for the ergonomic benefit only. For example: * The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo] * [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo] * Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code] To make programming easier with steno: * For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration: ** Specific dictionaries *** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols. ** Dictionary collections which include some programming related dictionaries *** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries *** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site]) *** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries] *** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries] *** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries] *** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries] * For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively. * Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above. === Can I use Plover for languages other than English? === Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made. If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.). Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system. The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages. === How long does it take to learn? === You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice. Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text. People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc. === What's a brief/stroke/arpeggiating/etc.? === You can find a list of commonly used terms in the [[glossary]]. === What can't Plover do? === For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own. * Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72]) Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it. * Transcript management and workflow Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]]. === Why does steno use dictionaries? === See [[Personalizing your dictionary#The dictionary's purpose|Personalizing your dictionary.]] === How do I write a word that's not in my dictionary? === You can use fingerspelling—a letter-by-letter spelling technique. If you use this word often enough, you should add it to your dictionary after. == Comparisons to professional stenography == === Why does steno need amateurs? === In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top. Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them. === What is Steno Arcade? === <img src="https://cdn.cloudflare.steamstatic.com/steam/apps/449000/header.jpg?t=1567716732" alt="Steno Arcade" /> [http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way. ==== Is Steno Arcade going to put steno schools out of business? ==== Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal. There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare. === How is Plover different from commercial steno programs? === Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference. To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster. === Is Plover going to put CAT software companies out of business? === Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners. === What are some features in Plover not commonly found in most CAT software? === # Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice. # Plover runs on Windows, Mac, and Linux. # Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay. # Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless. # And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight. <youtube>eSU5JlVXT1A</youtube> === Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? === Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow. === Can I use my dictionaries from another program? === Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software. [[Category:Stenography]] f6b15ab98e565f35d96ad97934ff46233a4e3ae9 User:FredericMcRae39 2 1583 2435 2024-11-12T20:36:23Z FredericMcRae39 1697 Created page with "Tire compound significantly impacts wintertime tire efficiency, influencing traction, grip, and dealing with on icy roadways. Softer substances enhance adaptability, enabling tires to adhere much better to road surfaces, boosting safety and security and command throughout rough wintertime states. For vehicle drivers in Latvia, recognizing the job of tire arrangement is actually important for deciding on the appropriate wintertime tires to browse daunting climate successf..." wikitext text/x-wiki Tire compound significantly impacts wintertime tire efficiency, influencing traction, grip, and dealing with on icy roadways. Softer substances enhance adaptability, enabling tires to adhere much better to road surfaces, boosting safety and security and command throughout rough wintertime states. For vehicle drivers in Latvia, recognizing the job of tire arrangement is actually important for deciding on the appropriate wintertime tires to browse daunting climate successfully.<br><br>Also visit my page [https://www.sendspace.com/file/fllabv Learn More] 2e0ebd844c4aeaa542b4b1027a3ddaafffea786f User:BevBorchgrevink 2 1584 2436 2024-11-13T19:55:10Z BevBorchgrevink 1698 Created page with "For those taking care of erectile difficulties, erection problems medication like erection supplements, construction gel, Vidalista 80, blu medic, tadalafil, and sildenafil supplies dependable possibilities. Well-regarded therapies, featuring Kamagra and Kamagra gel, job to sustain firmer, longer-lasting erections and enrich overall functionality. These choices work at marketing stronger blood stream flow and repairing confidence. With unique, secure ED options, men can..." wikitext text/x-wiki For those taking care of erectile difficulties, erection problems medication like erection supplements, construction gel, Vidalista 80, blu medic, tadalafil, and sildenafil supplies dependable possibilities. Well-regarded therapies, featuring Kamagra and Kamagra gel, job to sustain firmer, longer-lasting erections and enrich overall functionality. These choices work at marketing stronger blood stream flow and repairing confidence. With unique, secure ED options, men can easily currently appreciate a fuller, even more gratifying close live and enhanced confidence.<br><br>My website; [https://it.quora.com/Come-si-cura-la-disfunzione-erettile/answer/Justus-Richards-1 Available Here] cda442055e7b3583c79e38436fbc70d53dd2d380 File:Steno keys on QWERTY keyboard, with finger positions.png 6 1585 2437 2024-11-18T00:01:02Z Waldyrious 1699 Based on [[:File:Steno keys on QWERTY keyboard by Jen.png]]. Originally shared [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png on Discord] (dead link, [https://web.archive.org/web/20220426195900/https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png archived]). wikitext text/x-wiki == Summary == Based on [[:File:Steno keys on QWERTY keyboard by Jen.png]]. Originally shared [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png on Discord] (dead link, [https://web.archive.org/web/20220426195900/https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png archived]). 43142870bec0841437611a0d5995dd952a70f7c0 Arpeggiating 0 1586 2439 2024-11-18T00:46:32Z Waldyrious 1699 Redirected page to [[Glossary#Arpeggiate]] wikitext text/x-wiki #REDIRECT [[Glossary#Arpeggiate]] 8f705cb3d3be17425449629d7e688e7e997b624b User:KristopherX36 2 1587 2440 2024-11-27T23:00:23Z KristopherX36 1702 Created page with "Local hardware suppliers in Beaumont supply customized service with a large inventory of tools, home remodeling products, and exterior devices. From coating and horticulture materials to power tools and fasteners, these outlets come one-stop look for all [https://xavierprado.weebly.com/home/when-to-upgrade-your-electrical-supplies-in-beaumont-tx-a-homeowners-checklist Get Idea About Your Bit] fixing and restoration demands." wikitext text/x-wiki Local hardware suppliers in Beaumont supply customized service with a large inventory of tools, home remodeling products, and exterior devices. From coating and horticulture materials to power tools and fasteners, these outlets come one-stop look for all [https://xavierprado.weebly.com/home/when-to-upgrade-your-electrical-supplies-in-beaumont-tx-a-homeowners-checklist Get Idea About Your Bit] fixing and restoration demands. 66775fb83abe1d1ac634691b52e8020d784e2ca3 User:SteveCrowther45 2 1588 2441 2024-11-29T00:39:40Z SteveCrowther45 1704 Created page with "Addiction treatment in NJ offers personalized recovery programs modified to individual requirements. With a series of therapies and support services, treatment centers concentrate on dealing with the origin of addiction. Expert guidance aids individuals fix their lifestyles and [http://www.larsaluarna.se/index.php/User:ChiLindell420 See Details] work in the direction of lasting soberness in a supporting atmosphere, using both inpatient and outpatient possibilities for a..." wikitext text/x-wiki Addiction treatment in NJ offers personalized recovery programs modified to individual requirements. With a series of therapies and support services, treatment centers concentrate on dealing with the origin of addiction. Expert guidance aids individuals fix their lifestyles and [http://www.larsaluarna.se/index.php/User:ChiLindell420 See Details] work in the direction of lasting soberness in a supporting atmosphere, using both inpatient and outpatient possibilities for adaptability.<br><br>Also visit my webpage: [https://search.grainger.illinois.edu/searchaidlog3/sourcelognew.asp?ID=782151&goog--https://nextwindnj.com/ See Details] e56629359f8002e5ba70a927c6a612f0f8f8a582 User:Sima97316650229 2 1589 2442 2024-12-07T19:30:10Z Sima97316650229 1706 Created page with "Improvements in components, like using perovskite designs, have improved the effectiveness of sun doors, pushing sale costs beyond standard silicon modern technologies. This means you can easily assume better power result also from smaller sized setups.<br><br>My web-site ... [https://airsoftc3.com/user/110207/bridgerdfcobb Get Idea About Your Bit]" wikitext text/x-wiki Improvements in components, like using perovskite designs, have improved the effectiveness of sun doors, pushing sale costs beyond standard silicon modern technologies. This means you can easily assume better power result also from smaller sized setups.<br><br>My web-site ... [https://airsoftc3.com/user/110207/bridgerdfcobb Get Idea About Your Bit] 15bbc5ffb8c45fc5b681e59f8f05aa76217bc7e0 User:HershelGoris222 2 1590 2443 2024-12-08T09:36:01Z HershelGoris222 1707 Created page with "Internet software application outlets play a notable duty fit your obtaining selections. Through delivering a network for software program merchants to showcase their items, these retail stores allow you to review and examine different options. Because of this, you can easily make additional educated decisions when deciding on software that satisfies your necessities, no matter if you're a specialist or a hobbyist.<br><br>my site; [https://mucaz.weebly.com/home/how-onlin..." wikitext text/x-wiki Internet software application outlets play a notable duty fit your obtaining selections. Through delivering a network for software program merchants to showcase their items, these retail stores allow you to review and examine different options. Because of this, you can easily make additional educated decisions when deciding on software that satisfies your necessities, no matter if you're a specialist or a hobbyist.<br><br>my site; [https://mucaz.weebly.com/home/how-online-software-stores-are-changing-the-software-licensing-game View Our Editors Post] da8e29f619b6bcfef19900f43cde3526f3add8d8 User:BonnieMerrell8 2 1591 2444 2024-12-08T11:21:35Z BonnieMerrell8 1708 Created page with "Through taking advantage of your pyrography skills and using custom services, you'll be able to increase your earning possible rapidly and established on your own apart from competitors in the craft market. As you grow your business, you can continue to refine your offerings and rates approach to maximize your earnings.<br><br>Take a look at my site ... [http://www.furaffinity.net/user/roryeeaton View Source]" wikitext text/x-wiki Through taking advantage of your pyrography skills and using custom services, you'll be able to increase your earning possible rapidly and established on your own apart from competitors in the craft market. As you grow your business, you can continue to refine your offerings and rates approach to maximize your earnings.<br><br>Take a look at my site ... [http://www.furaffinity.net/user/roryeeaton View Source] 9dfd6bc841f9cf8b6aba7d726c48391a42d4087a User:RashadLeija 2 1592 2445 2024-12-08T11:29:30Z RashadLeija 1709 Created page with "Through utilize your pyrography skills and providing personalized services, you'll have the ability to increase your gaining prospective promptly and established on your own besides rivals in the craft market. As you expand your business, you can continue to fine-tune your offerings and prices technique to optimize your profits.<br><br>Look into my web site; [http://sashaeoneal.minitokyo.net/ Read My Reviews Here]" wikitext text/x-wiki Through utilize your pyrography skills and providing personalized services, you'll have the ability to increase your gaining prospective promptly and established on your own besides rivals in the craft market. As you expand your business, you can continue to fine-tune your offerings and prices technique to optimize your profits.<br><br>Look into my web site; [http://sashaeoneal.minitokyo.net/ Read My Reviews Here] 24da5aa04122f6daa4d4352cf4ce7dfe90674e43 User:CathleenThwaites 2 1593 2446 2024-12-08T15:17:53Z CathleenThwaites 1711 Created page with "Medical trials have illustrated that the combo of these all-natural substances in body weight control capsules can bring about significant declines in body system weight and fatty tissue mass in time. This medical support provides you confidence that Leanix Fruit Weight Loss Capsules aren't just yet another fleeting trend; they're started on solid analysis and proof.<br><br>Feel free to visit my page ... [https://dmoj.ca/user/camilladffleming Read More From Here]" wikitext text/x-wiki Medical trials have illustrated that the combo of these all-natural substances in body weight control capsules can bring about significant declines in body system weight and fatty tissue mass in time. This medical support provides you confidence that Leanix Fruit Weight Loss Capsules aren't just yet another fleeting trend; they're started on solid analysis and proof.<br><br>Feel free to visit my page ... [https://dmoj.ca/user/camilladffleming Read More From Here] f94dd49d7de9c80e1a2e9a1e4483005bd88a8ab8 User:DesireeCoughlin 2 1594 2447 2024-12-08T15:38:19Z DesireeCoughlin 1713 Created page with "Achieving weight management requires devotion, well balanced health and nutrition, and normal exercise. Alviona weight reduction pills can aid hold your experience by advertising natural metabolic rate and general wellness. Along with very carefully decided on all-natural components, Alviona capsules function to improve your energy and [https://menwiki.men/wiki/User:JarrodManchee3 Read My Post Here] balance, creating it easier to stay on track and achieve your fat loss..." wikitext text/x-wiki Achieving weight management requires devotion, well balanced health and nutrition, and normal exercise. Alviona weight reduction pills can aid hold your experience by advertising natural metabolic rate and general wellness. Along with very carefully decided on all-natural components, Alviona capsules function to improve your energy and [https://menwiki.men/wiki/User:JarrodManchee3 Read My Post Here] balance, creating it easier to stay on track and achieve your fat loss targets.<br><br>Also visit my webpage :: [https://www.shadertoy.com/user/AnndfNoble Read My Post Here] 6c5af6dc5ed2ab5a4d532d45ab21a2c9c0b75a7a User:DominiqueGhb 2 1595 2448 2024-12-08T15:47:08Z DominiqueGhb 1715 Created page with "Purchasing curtains and shades online can be actually a soft and rewarding process if you make the effort to consider your requirements and preferences. By precisely assessing your windows, understanding cloth possibilities, deciding on the appropriate design, [https://timeoftheworld.date/wiki/Things_To_Take_Into_Consideration_Before_Buying_Curtains_And_Shades_Online visit this link] and recognizing the components that are very most necessary to you, you'll be properly..." wikitext text/x-wiki Purchasing curtains and shades online can be actually a soft and rewarding process if you make the effort to consider your requirements and preferences. By precisely assessing your windows, understanding cloth possibilities, deciding on the appropriate design, [https://timeoftheworld.date/wiki/Things_To_Take_Into_Consideration_Before_Buying_Curtains_And_Shades_Online visit this link] and recognizing the components that are very most necessary to you, you'll be properly on your way to deciding on the best home window treatments for your home. Do not fail to remember to make the most of online guides and customer testimonials to help you create an updated selection. Whether you're trying to find added privacy, much better light management, or an elegant brand new look for your home windows, with the right understanding, you'll manage to buy that you'll be actually pleased with for several years to happen.<br><br>Look into my blog - [https://fameafric.blogspot.com/2024/12/how-to-create-stylish-home-with.html Visit This Link] 116aa890bb16a0065c7b1f668302ccc8d35c8873 User:AlfieBentley9 2 1596 2449 2024-12-08T16:07:16Z AlfieBentley9 1716 Created page with "Airline company purchase satisfaction is actually efficient, as providers have the systems in location to manage large-scale purchases with speed and productivity. By depending on an established airline company business solutions London company, [https://wiki.solsombra-abdl.com/index.php/User:MaggiePrentice Read My Post Here] airlines can easily focus their information on other critical elements of their business.<br><br>My site; [https://www.onfeetnation.com/video/exac..." wikitext text/x-wiki Airline company purchase satisfaction is actually efficient, as providers have the systems in location to manage large-scale purchases with speed and productivity. By depending on an established airline company business solutions London company, [https://wiki.solsombra-abdl.com/index.php/User:MaggiePrentice Read My Post Here] airlines can easily focus their information on other critical elements of their business.<br><br>My site; [https://www.onfeetnation.com/video/exactly-how-airline-facility-kit-distributors-add-to Read My Post Here] 99e8d2998ddceccd51182bf6364387db69d35a61 User:ROXSherryl 2 1597 2450 2024-12-08T16:22:37Z ROXSherryl 1719 Created page with "Clinical tests have shown that the combo of these natural ingredients in weight control pills can easily lead to substantial reductions in body system weight and [https://dokuwiki.stream/wiki/What_Generates_Leanix_Fruit_Weight_Management_Pills_Stick_Out_In_The_Market Check Our Editor Note] fat mass in time. This medical support provides you confidence that Leanix Fruit Weight Loss Capsules aren't only yet another short lived trend; they're established on strong analysis..." wikitext text/x-wiki Clinical tests have shown that the combo of these natural ingredients in weight control pills can easily lead to substantial reductions in body system weight and [https://dokuwiki.stream/wiki/What_Generates_Leanix_Fruit_Weight_Management_Pills_Stick_Out_In_The_Market Check Our Editor Note] fat mass in time. This medical support provides you confidence that Leanix Fruit Weight Loss Capsules aren't only yet another short lived trend; they're established on strong analysis and documentation.<br><br>Here is my page ... [https://de.quora.com/Welche-Vorteile-hat-%C3%9Cbergewicht/answer/Deegan-Wagner Check Our Editor Note] 80cb9cc1abb076266af25f12bc7756a16c38108a User:LashundaGholson 2 1598 2451 2024-12-08T16:34:47Z LashundaGholson 1722 Created page with "Achieving weight-loss needs commitment, balanced nutrition, and frequent physical exercise. Alviona weight reduction capsules can assist hold your journey by marketing all-natural metabolic process and general welfare. Along with carefully selected all-natural substances, Alviona capsules function to enrich your energy and harmony, making it simpler to remain on keep track of and achieve your weight management goals.<br><br>Feel free to surf to my webpage: [https://revie..." wikitext text/x-wiki Achieving weight-loss needs commitment, balanced nutrition, and frequent physical exercise. Alviona weight reduction capsules can assist hold your journey by marketing all-natural metabolic process and general welfare. Along with carefully selected all-natural substances, Alviona capsules function to enrich your energy and harmony, making it simpler to remain on keep track of and achieve your weight management goals.<br><br>Feel free to surf to my webpage: [https://reviewsandco.blogspot.com/2024/12/wie-zu-sicher-verwenden.html Read My Post Here] f9a2417945ed46d12f76dbc3c94957a2cbf86a4b User:EugenioRosales6 2 1599 2452 2024-12-08T16:44:35Z EugenioRosales6 1724 Created page with "Buying drapes and shades online can be a hassle-free and gratifying process if you put in the time to consider your demands and choices. Through precisely assessing your windows, understanding textile possibilities, opting for the best type, and knowing the functions that are very most vital to you, you'll be actually well on your means to choosing the excellent window procedures for your home. Don't neglect to take conveniences of on the internet manuals and client asse..." wikitext text/x-wiki Buying drapes and shades online can be a hassle-free and gratifying process if you put in the time to consider your demands and choices. Through precisely assessing your windows, understanding textile possibilities, opting for the best type, and knowing the functions that are very most vital to you, you'll be actually well on your means to choosing the excellent window procedures for your home. Don't neglect to take conveniences of on the internet manuals and client assessments to assist you create an educated selection. Whether you are actually trying to find incorporated privacy, far better mild control, or a fashionable makeover for your home windows, with the correct know-how, you'll be able to purchase that you'll [https://www.tumblr.com/bramblewax/769181886641815552/how-to-buy-shades-and-curtains-online-that-fit Read More Here] than happy with for a long times ahead. 774ceb8ea02c73f4fd5e5436e630e2c6e36dfe2f User:AlberthaB40 2 1600 2453 2024-12-08T16:49:34Z AlberthaB40 1723 Created page with "Professional tests have shown that the mixture of these organic components in weight control pills can lead to considerable decreases in body weight and fatty tissue mass over time. This scientific backing gives you self-confidence that Leanix Fruit Weight Loss Capsules may not be merely another fleeting trend; they're founded on solid investigation and [https://wavedream.wiki/index.php/Exactly_What_Creates_Leanix_Fruit_Effective_Weight_Loss_Pills_Stick_Out_In_The_Marke..." wikitext text/x-wiki Professional tests have shown that the mixture of these organic components in weight control pills can lead to considerable decreases in body weight and fatty tissue mass over time. This scientific backing gives you self-confidence that Leanix Fruit Weight Loss Capsules may not be merely another fleeting trend; they're founded on solid investigation and [https://wavedream.wiki/index.php/Exactly_What_Creates_Leanix_Fruit_Effective_Weight_Loss_Pills_Stick_Out_In_The_Market Check Our Top Pick] documentation.<br><br>Here is my website: [https://www.tumblr.com/carynokey/769276753684447232/oben-wirkstoffe-in-leanix-frucht Check Our Top Pick] 9a123def66a8bb555b696c6121b9920d7e93ba40 User:WaldoTrs5696732 2 1601 2454 2024-12-09T05:04:00Z WaldoTrs5696732 1727 Created page with "For [https://wiki.outhistory.org/wiki/User:Sam08830722400 Learn More] pupils finding top quality college essays, cheap essays, or fast essays, a professional writing service may be a game-changer. With specialized services such as assignment writing, essay help, and dissertation help, clients obtain custom papers tailored to their requirements. These writing services work with skilled writers to provide first-class content, guaranteeing trainees master their learning an..." wikitext text/x-wiki For [https://wiki.outhistory.org/wiki/User:Sam08830722400 Learn More] pupils finding top quality college essays, cheap essays, or fast essays, a professional writing service may be a game-changer. With specialized services such as assignment writing, essay help, and dissertation help, clients obtain custom papers tailored to their requirements. These writing services work with skilled writers to provide first-class content, guaranteeing trainees master their learning and academic quests.<br><br>Look at my blog; [https://www.instapaper.com/read/1734741788 Learn More] beac6cca574256a7b6550c34bade59c38ffb43b7 User:MohammedCraddock 2 1602 2455 2024-12-09T05:10:09Z MohammedCraddock 1728 Created page with "A dependable writing service for essay writing, assignment writing, and custom papers uses expert support to students around numerous academic fields. Whether you require essay help, dissertation help, or even research papers, professional writers make certain well-timed, high-quality outcomes. Writing experts assure plagiarism-free content that aligns with academic specifications, making it less complicated for pupils to attain excellence in their learning.<br><br>Here..." wikitext text/x-wiki A dependable writing service for essay writing, assignment writing, and custom papers uses expert support to students around numerous academic fields. Whether you require essay help, dissertation help, or even research papers, professional writers make certain well-timed, high-quality outcomes. Writing experts assure plagiarism-free content that aligns with academic specifications, making it less complicated for pupils to attain excellence in their learning.<br><br>Here is my web blog :: [https://www.pinterest.com/pin/755690012512912640/ Going Here] b54bb2943efd13be62c3c07fb22bd0ddd8e0633a User:CheriRandell 2 1603 2456 2024-12-10T14:13:17Z CheriRandell 1735 Created page with "By being positive and notified, you may select weight-loss capsules that line up with your health objectives. Keep in mind, the most ideal strategy to body weight management commonly entails a combo of diet plan, physical exercise, and way of living improvements, instead of relying exclusively on enhance.<br><br>Feel free to visit my web site: [http://depositfiles.com/files/s7r2qe775 Read This Post Here]" wikitext text/x-wiki By being positive and notified, you may select weight-loss capsules that line up with your health objectives. Keep in mind, the most ideal strategy to body weight management commonly entails a combo of diet plan, physical exercise, and way of living improvements, instead of relying exclusively on enhance.<br><br>Feel free to visit my web site: [http://depositfiles.com/files/s7r2qe775 Read This Post Here] 8f03251b3cac041c0b44c3261a3d70da83a2a426 User:ShastaMichaels 2 1604 2457 2024-12-10T17:08:45Z ShastaMichaels 1739 Created page with "Consuming fat burning capsules like S-Extra Capsules can substantially reinforce your fitness goals. These natural, vegan pills are formulated to increase rate of metabolism and market weight loss effectively. By including them in to your daily routine, you can easily improve your body system's natural ability to shed excess weight, creating it easier to remain toned and well-balanced.<br><br>My page - [https://movieo.me/users/allissondfrichard-jplddm Available Here]" wikitext text/x-wiki Consuming fat burning capsules like S-Extra Capsules can substantially reinforce your fitness goals. These natural, vegan pills are formulated to increase rate of metabolism and market weight loss effectively. By including them in to your daily routine, you can easily improve your body system's natural ability to shed excess weight, creating it easier to remain toned and well-balanced.<br><br>My page - [https://movieo.me/users/allissondfrichard-jplddm Available Here] 64785df0d9d9d7c3f4e9d80a50c4ceac45fbc66b User:VilmaKeaton5 2 1605 2458 2024-12-10T17:28:04Z VilmaKeaton5 1740 Created page with "Taking in fat burning pills like S-Extra Capsules may considerably reinforce your wellness and health and fitness goals. These organic, vegetarian capsules are actually formulated to improve metabolic process and market weight reduction successfully. By including them in to your everyday schedule, you can boost your body system's organic ability to shed excess weight, making it easier to stay in good condition and healthy.<br><br>Here is my webpage ... [https://www.dropb..." wikitext text/x-wiki Taking in fat burning pills like S-Extra Capsules may considerably reinforce your wellness and health and fitness goals. These organic, vegetarian capsules are actually formulated to improve metabolic process and market weight reduction successfully. By including them in to your everyday schedule, you can boost your body system's organic ability to shed excess weight, making it easier to stay in good condition and healthy.<br><br>Here is my webpage ... [https://www.dropbox.com/scl/fi/ah81k7yucorb3gz1697x1/S-Extra-kapseln-1.pdf?rlkey=qtueq1miesvx93ovophk2kzx1&st=rrjcqeds&dl=0 Discover More Here] ae72e23270592c2b9a682616dfcf713aa7bfa664 User:Phoebe89P0 2 1606 2459 2024-12-10T20:14:31Z Phoebe89P0 1741 Created page with "In a well-being pills examination, these ingredients regularly present appealing cause lowering tiredness and enhancing energy. By deciding on Wellfeel Capsules, you're not just resolving tiredness; you're acquiring a formula that sustains your body's all-natural electricity development and resilience versus everyday stress factors.<br><br>my website: [http://bioimagingcore.be/q2a/user/dresspig8 Article Source]" wikitext text/x-wiki In a well-being pills examination, these ingredients regularly present appealing cause lowering tiredness and enhancing energy. By deciding on Wellfeel Capsules, you're not just resolving tiredness; you're acquiring a formula that sustains your body's all-natural electricity development and resilience versus everyday stress factors.<br><br>my website: [http://bioimagingcore.be/q2a/user/dresspig8 Article Source] 17deb2f51f6579d7fc7e05402259cf608d2c825b User:RudyPerdue1 2 1607 2460 2024-12-11T05:58:42Z RudyPerdue1 1745 Created page with "The mobility of pills implies you can easily take all of them anywhere. Whether you're at work, traveling, or in the home, they suit seamlessly right into your routine. The ease enables you to remain steady, which is key for accomplishing your weight management goals. Eventually, weight management capsules can be actually a game-changer, offering a practical technique to managing your body weight without mind-boggling your life.<br><br>my web-site: [https://musclelove.co..." wikitext text/x-wiki The mobility of pills implies you can easily take all of them anywhere. Whether you're at work, traveling, or in the home, they suit seamlessly right into your routine. The ease enables you to remain steady, which is key for accomplishing your weight management goals. Eventually, weight management capsules can be actually a game-changer, offering a practical technique to managing your body weight without mind-boggling your life.<br><br>my web-site: [https://musclelove.com/profile/MaradfHanson Get More Info] 5e7d747d200b1347a219089077e933d749ce4613 User:PatrickMacknight 2 1608 2461 2024-12-11T06:36:28Z PatrickMacknight 1746 Created page with "The portability of pills indicates you can take all of them anywhere. Whether you're at job, traveling, or in your home, they fit effortlessly in to your schedule. The convenience enables you to keep constant, which is key for obtaining your fat loss objectives. Eventually, effective weight loss pills may be a game-changer, delivering a functional approach to handling your body weight without difficult your regular lifestyle.<br><br>My blog post; [https://ourdoings.com/t..." wikitext text/x-wiki The portability of pills indicates you can take all of them anywhere. Whether you're at job, traveling, or in your home, they fit effortlessly in to your schedule. The convenience enables you to keep constant, which is key for obtaining your fat loss objectives. Eventually, effective weight loss pills may be a game-changer, delivering a functional approach to handling your body weight without difficult your regular lifestyle.<br><br>My blog post; [https://ourdoings.com/terencearnold/2024-12-08 e828684] 15e1b067b6b4a8b6a5c19c5165ab95745e3b9ba9 User:SabineMerriam 2 1609 2462 2024-12-12T07:53:03Z SabineMerriam 1749 Created page with "Pick devices that enhances your beauty parlor's layout while providing optimum functions. A lot of Dallas vendors offer modern-day and adjustable choices for premier barber and hair salon devices, enabling you to produce a logical and elegant environment.<br><br>Here is my web-site - [https://eileenleavitt.weebly.com/home/major-factors-to-associate-with-a-regional-salon-instruments-provider-in-dallas Available Here]" wikitext text/x-wiki Pick devices that enhances your beauty parlor's layout while providing optimum functions. A lot of Dallas vendors offer modern-day and adjustable choices for premier barber and hair salon devices, enabling you to produce a logical and elegant environment.<br><br>Here is my web-site - [https://eileenleavitt.weebly.com/home/major-factors-to-associate-with-a-regional-salon-instruments-provider-in-dallas Available Here] 92d8a80df08b05b0c60754aac5fb43186a58a568 User:AnalisaP96 2 1610 2463 2024-12-12T08:03:20Z AnalisaP96 1751 Created page with "Pick equipment that suits your beauty salon's layout while delivering optimum performance. Several Dallas distributors deliver modern and customizable possibilities for excellent barber and [https://munidigital.iie.cl/wiki/index.php?title=Usuario:TrudyGoodson Clicking Here] beauty salon devices, allowing you to develop a natural and classy environment.<br><br>my website [https://cullencrawford.notion.site/Benefits-of-Partnering-With-a-Reputable-Barber-Tools-Supplier-in-..." wikitext text/x-wiki Pick equipment that suits your beauty salon's layout while delivering optimum performance. Several Dallas distributors deliver modern and customizable possibilities for excellent barber and [https://munidigital.iie.cl/wiki/index.php?title=Usuario:TrudyGoodson Clicking Here] beauty salon devices, allowing you to develop a natural and classy environment.<br><br>my website [https://cullencrawford.notion.site/Benefits-of-Partnering-With-a-Reputable-Barber-Tools-Supplier-in-Dallas-Texas-158cda2cf8a68022b881e2ac2e81d285?pvs=73 Clicking Here] bcc34cd6d9512a7d3254e2867df546776ea67305 User:KalaHoare29 2 1611 2464 2024-12-12T09:54:11Z KalaHoare29 1752 Created page with "Premier Health Internal Medicine & Pediatrics in Westland, Michigan uses a series of medical services, consisting of primary care, pediatrics, and internal medicine. Whether you need a primary care doctor, top doctor, or even pediatrician, their devoted team makes certain thorough maintain your entire household. With urgent care and walk-in clinic alternatives available, [https://shiapedia.1god.org/index.php/User:ElenaWelsh6 See Our Website] they provide practical, qual..." wikitext text/x-wiki Premier Health Internal Medicine & Pediatrics in Westland, Michigan uses a series of medical services, consisting of primary care, pediatrics, and internal medicine. Whether you need a primary care doctor, top doctor, or even pediatrician, their devoted team makes certain thorough maintain your entire household. With urgent care and walk-in clinic alternatives available, [https://shiapedia.1god.org/index.php/User:ElenaWelsh6 See Our Website] they provide practical, quality hospital for any ages.<br><br>My webpage; [https://www.exoltech.net/blogs/183725/Exactly-how-to-Opt-For-the-Ideal-Primary-Care-Medical See Our Website] 1deb66339c823a044eb3b9df4da6d313284ae550 User:HeatherN02 2 1612 2465 2024-12-12T09:54:22Z HeatherN02 1753 Created page with "At Premier Health Internal Medicine & Pediatrics in Westland, Michigan, patients of all ages receive excellent care from skillful primary care physicians. This facility delivers pediatrics, internal medicine, and primary care services. Whether you need a PCP, [https://fakenews.win/wiki/User:MichelineTrower Discover More] urgent care, or even a seasoned doctor, they concentrate on your lasting health along with individualized care and focus for your family members's need..." wikitext text/x-wiki At Premier Health Internal Medicine & Pediatrics in Westland, Michigan, patients of all ages receive excellent care from skillful primary care physicians. This facility delivers pediatrics, internal medicine, and primary care services. Whether you need a PCP, [https://fakenews.win/wiki/User:MichelineTrower Discover More] urgent care, or even a seasoned doctor, they concentrate on your lasting health along with individualized care and focus for your family members's needs.<br><br>Also visit my web-site [https://www.onfeetnation.com/profiles/blogs/overview-for-choosing-the-right-primary-care-clinic-in-westland Discover More] 18fa18e69b962db490b441f2dc0bbbc1af75849c User:ShennaHartfield 2 1613 2466 2024-12-12T10:08:52Z ShennaHartfield 1754 Created page with "At Premier Health Internal Medicine & Pediatrics in Westland, MI, patients of every ages acquire excellent care from skilled primary care medical professionals. This center uses pediatrics, internal medicine, and primary care services. Whether you require a PCP, urgent care, or a skilled doctor, they concentrate on your lasting wellness with customized care and interest for your family's requirements.<br><br>Feel free to surf to my page: [https://www.tumblr.com/whenyouwo..." wikitext text/x-wiki At Premier Health Internal Medicine & Pediatrics in Westland, MI, patients of every ages acquire excellent care from skilled primary care medical professionals. This center uses pediatrics, internal medicine, and primary care services. Whether you require a PCP, urgent care, or a skilled doctor, they concentrate on your lasting wellness with customized care and interest for your family's requirements.<br><br>Feel free to surf to my page: [https://www.tumblr.com/whenyouworkatflaconi/769469255825620992/common-health-care-services-offered-through?source=share Learn More] eb6ac07408482f3cef5630be282cc37e3da70080 User:KerriI29317063 2 1614 2467 2024-12-12T10:56:51Z KerriI29317063 1756 Created page with "If you're trying to find a cake shop in West London that offers optimum bespoke cakes, look no [https://www.storeboard.com/skyerogers Read More Here]. Angies Tiny Treats is actually renowned as the greatest cake shop West London, concentrating on custom cakes tailored to your needs. Whether it is actually for a birthday party or a wedding, Angies Tiny Treats produces sensational, tasty cakes to make every affair remarkable." wikitext text/x-wiki If you're trying to find a cake shop in West London that offers optimum bespoke cakes, look no [https://www.storeboard.com/skyerogers Read More Here]. Angies Tiny Treats is actually renowned as the greatest cake shop West London, concentrating on custom cakes tailored to your needs. Whether it is actually for a birthday party or a wedding, Angies Tiny Treats produces sensational, tasty cakes to make every affair remarkable. e401e349b6fc1a254d13ee27a45f009e035f60f7 User:DarrenWiegand0 2 1615 2468 2024-12-12T11:00:23Z DarrenWiegand0 1757 Created page with "If you're seeking a cake shop in West London that provides the finest bespoke cakes, look no better. Angies Tiny Treats is renowned as the best cake shop West London, focusing on custom cakes tailored to your necessities. Whether it is actually for a special day or even a wedding ceremony, [https://valetinowiki.racing/wiki/Exactly_Why_Custom-Made_Cakes_From_A_Tailored_Cake_Shop_In_West_London_Are_Worth_Every_Cent Additional Resources] Angies Tiny Treats creates impressi..." wikitext text/x-wiki If you're seeking a cake shop in West London that provides the finest bespoke cakes, look no better. Angies Tiny Treats is renowned as the best cake shop West London, focusing on custom cakes tailored to your necessities. Whether it is actually for a special day or even a wedding ceremony, [https://valetinowiki.racing/wiki/Exactly_Why_Custom-Made_Cakes_From_A_Tailored_Cake_Shop_In_West_London_Are_Worth_Every_Cent Additional Resources] Angies Tiny Treats creates impressive, tasty cakes to make every affair momentous.<br><br>my homepage ... [https://vnseo.edu.vn/members/steelbra5.80804.html Additional Resources] 2d7512890f7b3db5e5a1f9756e395abdf1d934b7 User:IrwinGagnon33 2 1616 2469 2024-12-14T07:22:32Z IrwinGagnon33 1760 Created page with "Modern leaners provide a variety of environments and attachments, permitting you to individualize your grooming schedule. You may simply achieve the ideal duration and form that fits your face and type. Additionally, the cleaning process itself has actually progressed into an enjoyable practice-- one that can easily boost your mornings and improve your peace of mind. Embracing this advancement suggests you're certainly not only staying on [https://modisfilmcollectibles.b..." wikitext text/x-wiki Modern leaners provide a variety of environments and attachments, permitting you to individualize your grooming schedule. You may simply achieve the ideal duration and form that fits your face and type. Additionally, the cleaning process itself has actually progressed into an enjoyable practice-- one that can easily boost your mornings and improve your peace of mind. Embracing this advancement suggests you're certainly not only staying on [https://modisfilmcollectibles.blogspot.com/2024/12/conveniences-of-using-normal-self-care.html Check Our Top Pick] of the trends; you're also buying on your own. 332d660435dc1a49228b8377584c1ea7bf1eeb34 User:TawnyaParkhurst 2 1617 2470 2024-12-14T07:37:35Z TawnyaParkhurst 1762 Created page with "Present day leaners provide numerous environments and add-ons, enabling you to personalize your pet grooming program. You can simply attain the ideal length and design that satisfies your face and style. Additionally, the cleaning process on its own has evolved right into a satisfying practice-- one that can easily elevate your mornings and [http://kousokuwiki.org/wiki/%E5%88%A9%E7%94%A8%E8%80%85:BarbRundle5674 Learn More] increase your confidence. Accepting this develo..." wikitext text/x-wiki Present day leaners provide numerous environments and add-ons, enabling you to personalize your pet grooming program. You can simply attain the ideal length and design that satisfies your face and style. Additionally, the cleaning process on its own has evolved right into a satisfying practice-- one that can easily elevate your mornings and [http://kousokuwiki.org/wiki/%E5%88%A9%E7%94%A8%E8%80%85:BarbRundle5674 Learn More] increase your confidence. Accepting this development implies you're certainly not just always keeping up with the trends; you're also purchasing on your own.<br><br>My web blog [https://www.fundable.com/marcus-kelley Learn More] e44f7b5ad9b3011558f1d74bc636c95ead806b84 User:Ralf56584352 2 1618 2471 2024-12-14T07:39:10Z Ralf56584352 1764 Created page with "Contemporary trimmers supply various settings and accessories, allowing you to personalize your grooming regimen. You may effortlessly attain the ideal duration and [https://clashofcryptos.trade/wiki/User:PorfirioSisley Visit Here] design that matches your skin and style. Furthermore, the cleaning method on its own has actually grown in to a pleasurable routine-- one that can easily increase your early mornings and enhance your assurance. Welcoming this progression indi..." wikitext text/x-wiki Contemporary trimmers supply various settings and accessories, allowing you to personalize your grooming regimen. You may effortlessly attain the ideal duration and [https://clashofcryptos.trade/wiki/User:PorfirioSisley Visit Here] design that matches your skin and style. Furthermore, the cleaning method on its own has actually grown in to a pleasurable routine-- one that can easily increase your early mornings and enhance your assurance. Welcoming this progression indicates you're certainly not just always keeping up with the trends; you're additionally purchasing your own self.<br><br>Feel free to surf to my blog post; [https://lulaellis.hashnode.dev/reasons-that-every-male-should-buy-a-good-grooming-set Visit Here] ea6253d31511168d745aebf95df1ae26ced5b741 User:TerriMurakami0 2 1619 2472 2024-12-14T07:40:16Z TerriMurakami0 1761 Created page with "Consuming organic gluten free granola is actually a great tasting way to take pleasure in a healthy snack food or food. Nola's granola, on call in different granola flavours, [https://twwrando.com/index.php/User:ShellieOHara Visit Website] consists of possibilities like coconut almond granola and granola with dark chocolate. Made in small sets, it is actually a non-GMO granola excellent for those seeking balanced snacks, such as granola with cinnamon or golden goji berr..." wikitext text/x-wiki Consuming organic gluten free granola is actually a great tasting way to take pleasure in a healthy snack food or food. Nola's granola, on call in different granola flavours, [https://twwrando.com/index.php/User:ShellieOHara Visit Website] consists of possibilities like coconut almond granola and granola with dark chocolate. Made in small sets, it is actually a non-GMO granola excellent for those seeking balanced snacks, such as granola with cinnamon or golden goji berries.<br><br>Feel free to surf to my web site - [https://telegra.ph/Great-Tasting-Organic-Gluten-Free-Granola-For-Every-Treat-12-10 Visit Website] d978428e1eb8885d59a75a5a77f325cb109c8647 User:StevenBoard 2 1620 2473 2024-12-14T07:40:49Z StevenBoard 1763 Created page with "Modern-day leaners provide several setups and add-ons, permitting you to individualize your grooming schedule. You may conveniently attain the perfect size and shape that matches your skin and design. Additionally, the grooming procedure on its own has actually progressed right into a delightful ritual-- one that can easily raise your early mornings and increase your self-confidence. Accepting [https://community.wongcw.com/posts/920064 Visit This Link] development sugges..." wikitext text/x-wiki Modern-day leaners provide several setups and add-ons, permitting you to individualize your grooming schedule. You may conveniently attain the perfect size and shape that matches your skin and design. Additionally, the grooming procedure on its own has actually progressed right into a delightful ritual-- one that can easily raise your early mornings and increase your self-confidence. Accepting [https://community.wongcw.com/posts/920064 Visit This Link] development suggests you're not merely staying up to date with the trends; you're additionally buying your own self. 9637bdf6935173573ee4a56799d7c2cba1235578 User:ManualEverhart 2 1621 2474 2024-12-14T07:52:34Z ManualEverhart 1765 Created page with "Consuming organic gluten free granola is a delectable means to appreciate a healthy treat or food. Nola's granola, offered in several granola flavours, consists of alternatives like coconut almond granola and granola with dark chocolate. Made in small batches, it is actually a non-GMO granola ideal for those looking for wholesome snacks, including granola with cinnamon or golden goji berries.<br><br>Feel free to visit my web-site :: [https://dailyuploads.net/qwmqjc80dvh2..." wikitext text/x-wiki Consuming organic gluten free granola is a delectable means to appreciate a healthy treat or food. Nola's granola, offered in several granola flavours, consists of alternatives like coconut almond granola and granola with dark chocolate. Made in small batches, it is actually a non-GMO granola ideal for those looking for wholesome snacks, including granola with cinnamon or golden goji berries.<br><br>Feel free to visit my web-site :: [https://dailyuploads.net/qwmqjc80dvh2/Nola_granola_(2).pdf View Our Editors Post] 1fec1a2a1288e7ec85bb6da1f3949fccde811ab8 User:WHGChristie 2 1622 2475 2024-12-14T07:56:59Z WHGChristie 1766 Created page with "Consuming organic gluten free granola is a delicious technique to delight in a healthy treat or dish. Nola's granola, readily available in different granola flavours, includes choices like coconut almond granola and granola with dark chocolate. Made in small batches, it is actually a non-GMO granola perfect for [http://www.asystechnik.com/index.php/Benutzer:XUGEmory81678 Investigate This Site] those finding healthy snacks, such as granola with cinnamon or golden goji be..." wikitext text/x-wiki Consuming organic gluten free granola is a delicious technique to delight in a healthy treat or dish. Nola's granola, readily available in different granola flavours, includes choices like coconut almond granola and granola with dark chocolate. Made in small batches, it is actually a non-GMO granola perfect for [http://www.asystechnik.com/index.php/Benutzer:XUGEmory81678 Investigate This Site] those finding healthy snacks, such as granola with cinnamon or golden goji berries.<br><br>My blog [http://michaelshall.withtank.com/gluten-free-granola/ Investigate This Site] 13eaf65d54e0bb2a455f6451f5cd3a87fb43ea59 User:MackenzieTownsen 2 1623 2476 2024-12-14T08:15:04Z MackenzieTownsen 1759 Created page with "If you're looking for a cake shop in West London that offers best bespoke cakes, look no more. Angies Tiny Treats is actually renowned as the very best cake shop West London, concentrating on custom cakes tailored [https://www.designnominees.com/profile/holden Go To This Web-Site] your needs. Whether it is actually for a birthday or a wedding, Angies Tiny Treats produces remarkable, tasty cakes to create every celebration momentous." wikitext text/x-wiki If you're looking for a cake shop in West London that offers best bespoke cakes, look no more. Angies Tiny Treats is actually renowned as the very best cake shop West London, concentrating on custom cakes tailored [https://www.designnominees.com/profile/holden Go To This Web-Site] your needs. Whether it is actually for a birthday or a wedding, Angies Tiny Treats produces remarkable, tasty cakes to create every celebration momentous. 0d51c1f0d4787ae36530ecb79557e771c7c9117a User:GabrielaAntonio 2 1624 2477 2024-12-14T09:03:48Z GabrielaAntonio 1768 Created page with "Consuming organic gluten free granola is actually a scrumptious way to appreciate a healthy treat or food. Nola's granola, accessible in several granola flavours, consists of possibilities like coconut almond granola and granola with dark chocolate. Created in small batches, it's a non-GMO granola excellent for those seeking healthy snacks, including granola with cinnamon or [https://inovlabs.com/wiki/index.php?title=Utilizador:LatashiaNoriega Get More Info] golden goji..." wikitext text/x-wiki Consuming organic gluten free granola is actually a scrumptious way to appreciate a healthy treat or food. Nola's granola, accessible in several granola flavours, consists of possibilities like coconut almond granola and granola with dark chocolate. Created in small batches, it's a non-GMO granola excellent for those seeking healthy snacks, including granola with cinnamon or [https://inovlabs.com/wiki/index.php?title=Utilizador:LatashiaNoriega Get More Info] golden goji berries.<br><br>Also visit my website: [https://lulaellis.hashnode.dev/exactly-how-to-add-natural-gluten-free-granola-to-your-morning-meal-regimen Get More Info] 797091a185b53dea7b1958cbf2ae6182a857da2c User:Katherina53F 2 1625 2478 2024-12-15T06:01:26Z Katherina53F 1769 Created page with "Think of the atmosphere you prefer. An energetic retreat along with enjoyment may match some, while others might choose a serene retreat. By spotting your trip design, you're one action deeper to locating the perfect Lombok resort that lines up along with [https://rumble.com/v5z6o6t-just-how-to-go-for-the-excellent-holiday-season-resort-in-lombok.html Get Idea About Your Bit] holiday desires." wikitext text/x-wiki Think of the atmosphere you prefer. An energetic retreat along with enjoyment may match some, while others might choose a serene retreat. By spotting your trip design, you're one action deeper to locating the perfect Lombok resort that lines up along with [https://rumble.com/v5z6o6t-just-how-to-go-for-the-excellent-holiday-season-resort-in-lombok.html Get Idea About Your Bit] holiday desires. c1e213a61d41527dea9a5c3eac38044053543295 User:DanaeWilt535048 2 1626 2479 2024-12-15T06:12:24Z DanaeWilt535048 1770 Created page with "Think of the setting you prefer. A dynamic retreat along with home entertainment could match some, while others could like a tranquil retreat. By identifying your travel style, you're one step deeper to locating the excellent Lombok resort that aligns with your vacation aspirations.<br><br>Also visit my website ... [https://www.comicartfans.com/GalleryDetail.asp?GCat=194692 Visit Website]" wikitext text/x-wiki Think of the setting you prefer. A dynamic retreat along with home entertainment could match some, while others could like a tranquil retreat. By identifying your travel style, you're one step deeper to locating the excellent Lombok resort that aligns with your vacation aspirations.<br><br>Also visit my website ... [https://www.comicartfans.com/GalleryDetail.asp?GCat=194692 Visit Website] 0d9358e2a6b25f960a63e7fb6466752339ff03a0 User:ConsueloWarrick 2 1627 2480 2024-12-15T06:39:03Z ConsueloWarrick 1773 Created page with "A med spa advertising company helps businesses reach their target market with adapted medspa marketing solutions and methods. Along with know-how in medical spa advertising, pay per click initiatives, and electronic advertising, we are actually a leading medical spa marketing provider. Our services are developed to enhance your internet presence and [https://disgaeawiki.info/index.php/User:TrentKenney1 Check More Details Here] increase reservations with highly helpful m..." wikitext text/x-wiki A med spa advertising company helps businesses reach their target market with adapted medspa marketing solutions and methods. Along with know-how in medical spa advertising, pay per click initiatives, and electronic advertising, we are actually a leading medical spa marketing provider. Our services are developed to enhance your internet presence and [https://disgaeawiki.info/index.php/User:TrentKenney1 Check More Details Here] increase reservations with highly helpful medspa advertising and marketing tactics and healthy skin care advertisings.<br><br>Feel free to visit my web site - [https://articlescad.com/guide-for-selecting-the-perfect-med-spa-advertising-company-for-your-business-demands-345267.html Check More Details Here] 73500077778166b4369cb1e52b6df2db80756bae User:RenateBeavis48 2 1628 2481 2024-12-15T06:54:57Z RenateBeavis48 1774 Created page with "A med spa advertising company helps businesses reach their target market through modified medspa marketing solutions and strategies. With know-how in medical spa advertising, pay per [https://telegra.ph/Top-Methods-from-a-Medical-Spa-Advertising-Company-12-15 Click Here] projects, and electronic advertising and marketing, we are actually a leading medical spa marketing business. Our services are actually designed to boost your on the internet existence and increase booki..." wikitext text/x-wiki A med spa advertising company helps businesses reach their target market through modified medspa marketing solutions and strategies. With know-how in medical spa advertising, pay per [https://telegra.ph/Top-Methods-from-a-Medical-Spa-Advertising-Company-12-15 Click Here] projects, and electronic advertising and marketing, we are actually a leading medical spa marketing business. Our services are actually designed to boost your on the internet existence and increase bookings through very reliable medspa advertising approaches and skincare promotions. d03b27d32685b3e886182ab8cf18378fe59de026 User:Arnulfo19P 2 1629 2482 2024-12-15T06:56:20Z Arnulfo19P 1775 Created page with "A med spa marketing agency aids businesses reach their intended viewers with customized medspa marketing services and approaches. Along with skills in medical spa advertising, pay per click initiatives, and electronic advertising and marketing, we are a prominent medical spa marketing provider. Our services are actually created to increase your on the internet presence and increase reservations via highly helpful medspa marketing methods and natural skin care promotions...." wikitext text/x-wiki A med spa marketing agency aids businesses reach their intended viewers with customized medspa marketing services and approaches. Along with skills in medical spa advertising, pay per click initiatives, and electronic advertising and marketing, we are a prominent medical spa marketing provider. Our services are actually created to increase your on the internet presence and increase reservations via highly helpful medspa marketing methods and natural skin care promotions.<br><br>My webpage :: [https://start.me/w/9Dq7Oa View Source] 395cf7bb6f3dfd0917e4e38353aba537443e422b User:DarrylChinnery 2 1630 2483 2024-12-15T07:03:06Z DarrylChinnery 1776 Created page with "A medical spa advertising company assists businesses reach their intended reader with customized medspa marketing services and methods. With know-how in medical spa marketing, pay per click initiatives, and digital advertising and marketing, we are actually a foremost medical spa marketing business. Our services are actually designed to increase your on-line existence and boost bookings with strongly successful medspa advertising and marketing techniques and natural skin..." wikitext text/x-wiki A medical spa advertising company assists businesses reach their intended reader with customized medspa marketing services and methods. With know-how in medical spa marketing, pay per click initiatives, and digital advertising and marketing, we are actually a foremost medical spa marketing business. Our services are actually designed to increase your on-line existence and boost bookings with strongly successful medspa advertising and marketing techniques and natural skin care promotions.<br><br>My site: [https://johncornershop.hatenablog.com/entry/How_a_Focused_Med_Spa_Advertising_Company_Can_Enhance_Your_Business%3F Discover More] ea74123cc525cf8457a7b34ab7f79b5f09c50a6f User:NolaMcBeath 2 1631 2484 2024-12-17T13:28:36Z NolaMcBeath 1779 Created page with "Peptide therapy in London is actually revolutionizing health marketing. Taking advantage of oral peptide bioregulators, this therapy boosts cell regrowth, targeting specific health issues like growing old and irritation. For those looking for intellectual perks, brain peptide therapy delivers remodelings in psychological quality, state of mind, and moment. This cutting-edge therapy is individualized for each and every client, ensuring a customized strategy to well-being..." wikitext text/x-wiki Peptide therapy in London is actually revolutionizing health marketing. Taking advantage of oral peptide bioregulators, this therapy boosts cell regrowth, targeting specific health issues like growing old and irritation. For those looking for intellectual perks, brain peptide therapy delivers remodelings in psychological quality, state of mind, and moment. This cutting-edge therapy is individualized for each and every client, ensuring a customized strategy to well-being and life expectancy.<br><br>Feel free to visit my page - [https://telegra.ph/Reason-Why-Peptide-Therapy-Is-Actually-Gaining-Popularity-in-London-12-14 Learn More Here] 95794c94bf02db7cd243489180be20ecb7949451 User:AmbroseGooseberr 2 1632 2485 2024-12-17T13:40:05Z AmbroseGooseberr 1781 Created page with "Peptide therapy in London is actually transforming health and wellness optimization. Using oral peptide bioregulators, this therapy enhances cell regrowth, targeting details health and wellness problems like getting older and swelling. For those looking for intellectual perks, brain peptide therapy gives renovations in psychological clarity, mood, and mind. This innovative treatment is actually personalized for every client, ensuring a customized technique to wellness an..." wikitext text/x-wiki Peptide therapy in London is actually transforming health and wellness optimization. Using oral peptide bioregulators, this therapy enhances cell regrowth, targeting details health and wellness problems like getting older and swelling. For those looking for intellectual perks, brain peptide therapy gives renovations in psychological clarity, mood, and mind. This innovative treatment is actually personalized for every client, ensuring a customized technique to wellness and life expectancy.<br><br>Here is my homepage [https://webhitlist.com/profiles/blogs/why-peptide-therapy-is-actually-becoming-more-popular-in-london Visit Here] d433f0e9886c92baef26b2e56c0d99f089bbc206 User:CharoletteEoff1 2 1633 2486 2024-12-17T13:40:12Z CharoletteEoff1 1782 Created page with "Peptide therapy in London supplies an all natural approach to health and wellness and health, making use of oral peptide bioregulators to maximize cellular features and help overall stamina. Whether you're looking to boost skin layer, [https://www.fantastischevertellingen.nl/index.php?title=Dealing_With_Persistent_Wellness_Disorders_Through_Peptide_Therapy_In_London learn more] energy, or muscular tissue rehabilitation, this therapy uses targeted solutions. For intellec..." wikitext text/x-wiki Peptide therapy in London supplies an all natural approach to health and wellness and health, making use of oral peptide bioregulators to maximize cellular features and help overall stamina. Whether you're looking to boost skin layer, [https://www.fantastischevertellingen.nl/index.php?title=Dealing_With_Persistent_Wellness_Disorders_Through_Peptide_Therapy_In_London learn more] energy, or muscular tissue rehabilitation, this therapy uses targeted solutions. For intellectual enhancement, brain peptide therapy aids enhance moment, focus, and psychological clarity, enabling you to experience your finest.<br><br>Also visit my webpage: [https://start.me/w/LGnOdN Learn More] b001d744419af2d9affa2cfa26a4d9315165d63f User:AnitaBowden8 2 1634 2487 2024-12-18T09:08:19Z AnitaBowden8 1786 Created page with "Visiting drug rehab in NJ provides crucial help for those fighting addiction. Along with a wide array of services given at New Jersey drug rehab centers, consisting of partial hospitalization programs in New Jersey, individuals can easily access tailored care and organized therapy to overcome material abuse. Specialized opioid rehab programs in NJ supply focused treatment for opioid addiction, guaranteeing lasting recovery.<br><br>Feel free to surf to my web blog; [https..." wikitext text/x-wiki Visiting drug rehab in NJ provides crucial help for those fighting addiction. Along with a wide array of services given at New Jersey drug rehab centers, consisting of partial hospitalization programs in New Jersey, individuals can easily access tailored care and organized therapy to overcome material abuse. Specialized opioid rehab programs in NJ supply focused treatment for opioid addiction, guaranteeing lasting recovery.<br><br>Feel free to surf to my web blog; [https://x.com/BryanPe87124469/status/1868214281420075278 Check More Details Here] f57b85a09d206fb14952882dea8c96db5a307f7d User:Errol80F41 2 1635 2488 2024-12-18T09:10:47Z Errol80F41 1784 Created page with "Going to drug rehab in NJ supplies necessary assistance for those fighting addiction. Along with a wide array of services used at New Jersey drug rehab centers, consisting of partial hospitalization programs in New Jersey, individuals may access personalized care and organized therapy to beat element abuse. Specialized opioid rehab programs in NJ use targeted treatment for opioid addiction, guaranteeing long-lasting recovery.<br><br>Stop by my web-site [https://ourdoings..." wikitext text/x-wiki Going to drug rehab in NJ supplies necessary assistance for those fighting addiction. Along with a wide array of services used at New Jersey drug rehab centers, consisting of partial hospitalization programs in New Jersey, individuals may access personalized care and organized therapy to beat element abuse. Specialized opioid rehab programs in NJ use targeted treatment for opioid addiction, guaranteeing long-lasting recovery.<br><br>Stop by my web-site [https://ourdoings.com/mabelpatton/2024-12-16 e828702] 953db9094f614cf68911fdbc4dfffcae178d706d User:VeronicaMatteson 2 1636 2489 2024-12-18T16:30:57Z VeronicaMatteson 1794 Created page with "As the wedding field in Spain continues to conform to the electronic age, the future of wedding gift buying online searches intense. The developing choice for inexpensive wedding details, tailored products, [https://openeducationitalia.it/wiki/index.php?title=Utente:LillyVictor0 Websites] and environmentally friendly options is improving how couples come close to wedding organizing. With the ease of internet purchasing and rapid delivery services, married couples may ea..." wikitext text/x-wiki As the wedding field in Spain continues to conform to the electronic age, the future of wedding gift buying online searches intense. The developing choice for inexpensive wedding details, tailored products, [https://openeducationitalia.it/wiki/index.php?title=Utente:LillyVictor0 Websites] and environmentally friendly options is improving how couples come close to wedding organizing. With the ease of internet purchasing and rapid delivery services, married couples may easily locate the excellent details for wedding and gifts that match their needs and inclinations. As trends develop, Spanish buyers will remain to accept the benefits of online wedding buying, making it an integral component of their wedding events.<br><br>Here is my homepage: [https://papaly.com/categories/share?id=991fa16edad34df1a3fa78f082c99545 Websites] add136089edc52d20284e1de7e78eb6be1d1e7b2 User:VanitaSommers 2 1637 2490 2024-12-19T07:18:29Z VanitaSommers 1795 Created page with "If you're trying to buy a portable air conditioner NZ, [https://www.akonter.com/story/best-portable-air-conditioners-in-nz/ Check Our Editor Note] out the wide variety of portable a/c online. With alternatives like Daikin AC, Carrier AC, and Mitsubishi Heavy Industries AC, you can find the best portable ac unit NZ for your home. These portable central air conditioning units NZ promotion dependable cooling for year-round convenience, especially during the course of the su..." wikitext text/x-wiki If you're trying to buy a portable air conditioner NZ, [https://www.akonter.com/story/best-portable-air-conditioners-in-nz/ Check Our Editor Note] out the wide variety of portable a/c online. With alternatives like Daikin AC, Carrier AC, and Mitsubishi Heavy Industries AC, you can find the best portable ac unit NZ for your home. These portable central air conditioning units NZ promotion dependable cooling for year-round convenience, especially during the course of the summer heat. d7dd983716205bcf71e5bbac6e6c009efd335e73 User:HeleneRunion 2 1638 2491 2024-12-19T07:42:42Z HeleneRunion 1796 Created page with "If you're trying to buy portable air conditioning unit online in New Zealand, NZ Depot delivers a large variety of portable AC units developed for comfort and energy efficiency. Select from best brands like Daikin, Carrier, and Mitsubishi Heavy Industries, guaranteeing you get the greatest portable air conditioning system NZ needs to supply. Perfect for cooling your area efficiently and flexibility.<br><br>Review my page :: [https://www.instapaper.com/read/1708459677 Vis..." wikitext text/x-wiki If you're trying to buy portable air conditioning unit online in New Zealand, NZ Depot delivers a large variety of portable AC units developed for comfort and energy efficiency. Select from best brands like Daikin, Carrier, and Mitsubishi Heavy Industries, guaranteeing you get the greatest portable air conditioning system NZ needs to supply. Perfect for cooling your area efficiently and flexibility.<br><br>Review my page :: [https://www.instapaper.com/read/1708459677 Visit This Link] 9e037cdffc000f937d8b025957d9930388c9ff14 User:DeandreMarkley9 2 1639 2492 2024-12-19T08:05:43Z DeandreMarkley9 1798 Created page with "If you are actually appearing to purchase portable air conditioning system online in New Zealand, NZ Depot offers a variety of portable AC units developed for convenience and energy effectiveness. Select from top brands like Daikin, Carrier, and Mitsubishi Heavy Industries, guaranteeing you acquire the greatest portable air conditioning system NZ has to use. Perfect for cooling your area comfortably and flexibility.<br><br>Here is my site [https://livepositively.com/caus..." wikitext text/x-wiki If you are actually appearing to purchase portable air conditioning system online in New Zealand, NZ Depot offers a variety of portable AC units developed for convenience and energy effectiveness. Select from top brands like Daikin, Carrier, and Mitsubishi Heavy Industries, guaranteeing you acquire the greatest portable air conditioning system NZ has to use. Perfect for cooling your area comfortably and flexibility.<br><br>Here is my site [https://livepositively.com/causes-to-purchase-a-portable-air-conditioning-system-online-in-new-zealand/ Available Here] 69d08763748f5f093dcefa992326937224e65e62 User:Brandi75T56 2 1640 2493 2024-12-19T08:18:06Z Brandi75T56 1797 Created page with "If you are actually trying to purchase a portable air conditioner NZ, look into the wide variety of portable air conditioning unit online. With possibilities like Daikin AC, Carrier AC, and Mitsubishi Heavy Industries AC, you can easily locate the best portable a/c NZ for your home. These portable cooling units NZ deal effective cooling for year-round convenience, especially during the summer months heat.<br><br>My blog post - [https://myspace.com/lazarocavazos/post/acti..." wikitext text/x-wiki If you are actually trying to purchase a portable air conditioner NZ, look into the wide variety of portable air conditioning unit online. With possibilities like Daikin AC, Carrier AC, and Mitsubishi Heavy Industries AC, you can easily locate the best portable a/c NZ for your home. These portable cooling units NZ deal effective cooling for year-round convenience, especially during the summer months heat.<br><br>My blog post - [https://myspace.com/lazarocavazos/post/activity_profile_65321889_3760d5fa26354ccfba85ba073409fe7e/comments Investigate This Site] cf7c50a02a03ec607d08c57064216ebcfc1ff9e0 User:MakaylaFried 2 1641 2494 2024-12-19T08:46:37Z MakaylaFried 1799 Created page with "A qualified real estate broker in Montreal offers experienced support in acquiring, selling, [https://hikvisiondb.webcam/wiki/Real_Estate_Professionals_In_Montreal:_A_Manual_To_Their_Services See Details] and leasing buildings. With extensive expertise of the regional market, they provide tailored services tailored to each client's requirements. Their know-how guarantees a smooth, hassle-free deal, whether it is actually a 1st home or a financial investment property in..." wikitext text/x-wiki A qualified real estate broker in Montreal offers experienced support in acquiring, selling, [https://hikvisiondb.webcam/wiki/Real_Estate_Professionals_In_Montreal:_A_Manual_To_Their_Services See Details] and leasing buildings. With extensive expertise of the regional market, they provide tailored services tailored to each client's requirements. Their know-how guarantees a smooth, hassle-free deal, whether it is actually a 1st home or a financial investment property in this lively area.<br><br>My blog [https://myspace.com/lazarocavazos/post/activity_profile_65321889_e6e0ba5895f9479991aa6db30f2326ed/comments See Details] bc8eea6f4b228b5cd35eaf8e8254f5297a878b0d User:LucieFries8 2 1642 2495 2024-12-19T09:00:12Z LucieFries8 1800 Created page with "An expert property agent in Montreal provides professional direction in getting, selling, and [https://thebitcoinproject.club/wiki/index.php/Montreal_Property_Representatives:_The_Services_They_Provide_To_Clients read more here] renting out buildings. Along with detailed knowledge of the local market, they supply tailored services adapted to every client's demands. Their expertise guarantees a smooth, hassle-free transaction, whether it is actually an initial home or an..." wikitext text/x-wiki An expert property agent in Montreal provides professional direction in getting, selling, and [https://thebitcoinproject.club/wiki/index.php/Montreal_Property_Representatives:_The_Services_They_Provide_To_Clients read more here] renting out buildings. Along with detailed knowledge of the local market, they supply tailored services adapted to every client's demands. Their expertise guarantees a smooth, hassle-free transaction, whether it is actually an initial home or an expenditure residential property in this vivid city.<br><br>My web page :: [https://wakelet.com/wake/bwz6IpSu8NB9gGa3WJIrI Read More Here] 683cf8ef5b81d469b62d4f1e9fd438b98e22e339 User:DanteWeathers92 2 1643 2496 2024-12-21T07:48:21Z DanteWeathers92 1802 Created page with "Create clear channels for comments and conversation. Urge open conversation regarding exactly how the brand new firmware growth service influences their roles and workflows. This transparency builds trust and lowers understanding, allowing your group to adapt additional perfectly.<br><br>my web-site - [http://autobmw.lv/user/hourhair51/ Learn More Here]" wikitext text/x-wiki Create clear channels for comments and conversation. Urge open conversation regarding exactly how the brand new firmware growth service influences their roles and workflows. This transparency builds trust and lowers understanding, allowing your group to adapt additional perfectly.<br><br>my web-site - [http://autobmw.lv/user/hourhair51/ Learn More Here] 97f717462f0e2ccb5631147113641ab574266c14 User:MadieCausey43 2 1644 2497 2024-12-21T08:36:28Z MadieCausey43 1803 Created page with "Develop crystal clear stations for feedback and conversation. Promote visible dialogue concerning exactly how the brand new firmware growth service effects their roles and operations. This transparency builds trust and reduces awareness, enabling your group to adapt even more perfectly.<br><br>Here is my blog ... [https://intern.ee.aeust.edu.tw/home.php?mod=space&uid=1284634 Article Source]" wikitext text/x-wiki Develop crystal clear stations for feedback and conversation. Promote visible dialogue concerning exactly how the brand new firmware growth service effects their roles and operations. This transparency builds trust and reduces awareness, enabling your group to adapt even more perfectly.<br><br>Here is my blog ... [https://intern.ee.aeust.edu.tw/home.php?mod=space&uid=1284634 Article Source] d9d49c4c123559b3157ca440cab2f2159b5d7e4b User:GiuseppeStawell 2 1645 2498 2024-12-22T09:54:42Z GiuseppeStawell 1807 Created page with "The Redmine theme supplies a smooth, present day design that boosts the task administration experience. As a responsive Redmine theme, it makes certain smooth functions throughout devices, featuring mobile. Whether you are actually seeking a commercial Redmine theme or even a paid Redmine theme, this adjustable solution adapts to your group's necessities, enhancing use and performance in handling projects.<br><br>My web-site; [http://www.askmap.net/location/7203367/indon..." wikitext text/x-wiki The Redmine theme supplies a smooth, present day design that boosts the task administration experience. As a responsive Redmine theme, it makes certain smooth functions throughout devices, featuring mobile. Whether you are actually seeking a commercial Redmine theme or even a paid Redmine theme, this adjustable solution adapts to your group's necessities, enhancing use and performance in handling projects.<br><br>My web-site; [http://www.askmap.net/location/7203367/indonesia/nuno-themes Discover More] 3fe9a4f24fd5f4d5eb90a23d9f8116ccc5032487 User:LoriCyr4358204 2 1646 2499 2024-12-23T06:02:44Z LoriCyr4358204 1808 Created page with "Boosted screening strategies could cultivate responsible marijuana usage, as individuals might become much [https://www.diigo.com/item/note/9dqs5/7tqu?k=cd0bd2f100f74d51c86786986dd06f4f Discover More Here] aware of their impairment degrees. By focusing on social protection through exact cannabis impairment examinations, areas can easily better browse the complexities of cannabis legalization while reducing dangers connected with intoxicated driving." wikitext text/x-wiki Boosted screening strategies could cultivate responsible marijuana usage, as individuals might become much [https://www.diigo.com/item/note/9dqs5/7tqu?k=cd0bd2f100f74d51c86786986dd06f4f Discover More Here] aware of their impairment degrees. By focusing on social protection through exact cannabis impairment examinations, areas can easily better browse the complexities of cannabis legalization while reducing dangers connected with intoxicated driving. e8545d23f23cc1ebb7d896542f3c38d6fe52ee05 User:Chana60V7190 2 1647 2500 2024-12-23T06:17:48Z Chana60V7190 1809 Created page with "Partnering along with a reputable white label search engine optimization firm permits companies to provide top notch SEO services without buying in-house groups. Providing services for white label search engine optimization services, they assist businesses in the UK, United States, Ireland business increase presence and [https://verkaufs-lexikon.de/index.php?title=How_A_White_Label_SEO_Company_Helps_In_Getting_Customer_Trust_And_Cultivating_Support Find More About This]..." wikitext text/x-wiki Partnering along with a reputable white label search engine optimization firm permits companies to provide top notch SEO services without buying in-house groups. Providing services for white label search engine optimization services, they assist businesses in the UK, United States, Ireland business increase presence and [https://verkaufs-lexikon.de/index.php?title=How_A_White_Label_SEO_Company_Helps_In_Getting_Customer_Trust_And_Cultivating_Support Find More About This] travel development. Agencies can easily trust all of them to handle SEO tasks while concentrating on customer relationships and business development.<br><br>Here is my website :: [http://www.askmap.net/location/7204079/united-kingdom/bes-poke-marketing-plans Find More About This] 4e585c4970a4090be6ff7121285cc22a21694191 User:SuzetteStonge7 2 1648 2501 2024-12-23T06:35:42Z SuzetteStonge7 1810 Created page with "Partnering along with a reliable white label search engine optimization company permits agencies to supply high quality SEO services without purchasing in-house crews. Providing services for [https://wiki.asexuality.org/w/index.php?title=User_talk:Kathleen47D See Details] white label SEO services, they help businesses in the UK, U.S.A., Ireland business increase presence and drive growth. Agencies can easily trust all of them to deal with search engine optimization duti..." wikitext text/x-wiki Partnering along with a reliable white label search engine optimization company permits agencies to supply high quality SEO services without purchasing in-house crews. Providing services for [https://wiki.asexuality.org/w/index.php?title=User_talk:Kathleen47D See Details] white label SEO services, they help businesses in the UK, U.S.A., Ireland business increase presence and drive growth. Agencies can easily trust all of them to deal with search engine optimization duties while concentrating on customer connections and business development.<br><br>Here is my web page [https://www.tumblr.com/truckdrivingtraining/770557896266317824/tips-to-thriving-in-a-competitive-market-with-a?source=share See Details] 8a172c4fb5908b6854ba7301eef8f23f62031412 User:JackP0151049223 2 1649 2502 2024-12-23T06:50:10Z JackP0151049223 1811 Created page with "Partnering with a reliable white label SEO business permits firms to deliver top quality search engine optimization services without acquiring internal crews. Focusing in white label search engine optimization services, they aid businesses in the UK, United States, Ireland [https://wiki.woge.or.at//index.php?title=Benutzer:Luca12D26930041 Visit This Link] business increase visibility and drive development. Agencies can easily trust them to deal with SEO activities while..." wikitext text/x-wiki Partnering with a reliable white label SEO business permits firms to deliver top quality search engine optimization services without acquiring internal crews. Focusing in white label search engine optimization services, they aid businesses in the UK, United States, Ireland [https://wiki.woge.or.at//index.php?title=Benutzer:Luca12D26930041 Visit This Link] business increase visibility and drive development. Agencies can easily trust them to deal with SEO activities while centering on client connections and business development.<br><br>Also visit my website :: [https://josuebowen.mystrikingly.com/blog/how-a-white-label-search-engine-optimization-company-can-improvement-your Visit This Link] b91e299fb450e22609801f45ba040e0d706ca66b User:Stanton1259 2 1650 2503 2024-12-23T06:56:42Z Stanton1259 1812 Created page with "Partnering with a dependable white label SEO provider allows organizations to deliver premium SEO services without acquiring internal groups. Concentrating in white label search engine optimization services, they assist businesses in the UK, USA, Ireland business increase exposure and travel development. Agencies may trust all of them to deal with search engine optimization duties while paying attention to client relationships and business growth.<br><br>Here is my web p..." wikitext text/x-wiki Partnering with a dependable white label SEO provider allows organizations to deliver premium SEO services without acquiring internal groups. Concentrating in white label search engine optimization services, they assist businesses in the UK, USA, Ireland business increase exposure and travel development. Agencies may trust all of them to deal with search engine optimization duties while paying attention to client relationships and business growth.<br><br>Here is my web page - [https://www.pdc.edu/?URL=https://bespokemarketingplans.co.uk/ Discover More Here] 1769ac6d2c9e75ac3085a191ff75655de56a1dad User:TresaAmato78850 2 1651 2504 2024-12-23T07:03:29Z TresaAmato78850 1814 Created page with "Enriched testing procedures could cultivate responsible cannabis intake, as individuals may end up being more informed of their issue levels. By prioritizing public safety by means of precise weed impairment assessments, [http://food.errol.org.uk/index.php/User:LinMerewether8 Visit Here] communities can easily better get through the intricacies of cannabis legalisation while minimizing threats related to inebriated driving.<br><br>Also visit my website ... [https://www...." wikitext text/x-wiki Enriched testing procedures could cultivate responsible cannabis intake, as individuals may end up being more informed of their issue levels. By prioritizing public safety by means of precise weed impairment assessments, [http://food.errol.org.uk/index.php/User:LinMerewether8 Visit Here] communities can easily better get through the intricacies of cannabis legalisation while minimizing threats related to inebriated driving.<br><br>Also visit my website ... [https://www.onfeetnation.com/profiles/blogs/precisely-how-cannabis-drunkenness-is-actually-checked-approaches Visit Here] 1dcdd7d7954bbd13f86663adc2623a1980963af5 User:AngelikaFairley 2 1652 2505 2024-12-23T07:18:15Z AngelikaFairley 1816 Created page with "Watch on messages including free offers or even competitions. Getting involved may certainly not merely score you totally free products however additionally present you to brands that deliver superb gifts for women, reusable laundry bags, and [https://www.exoltech.us/blogs/245181/Exactly-How-to-Select-the-Greatest-Everyday-Way-Of-Life Check More Details Here]." wikitext text/x-wiki Watch on messages including free offers or even competitions. Getting involved may certainly not merely score you totally free products however additionally present you to brands that deliver superb gifts for women, reusable laundry bags, and [https://www.exoltech.us/blogs/245181/Exactly-How-to-Select-the-Greatest-Everyday-Way-Of-Life Check More Details Here]. 6c3102379e0d9aea16ea3c4fe70a2814bfd210c9 User:Concepcion24L 2 1653 2506 2024-12-23T07:23:42Z Concepcion24L 1817 Created page with "Watch on articles featuring free offers or contests. Engaging can easily certainly not only count you cost-free items yet additionally offer you to brand names that offer great presents for females, recyclable laundry bags, and even more.<br><br>my web-site :: [https://ourdoings.com/unlisted/pd6nqve7/2024-12-22 e828710]" wikitext text/x-wiki Watch on articles featuring free offers or contests. Engaging can easily certainly not only count you cost-free items yet additionally offer you to brand names that offer great presents for females, recyclable laundry bags, and even more.<br><br>my web-site :: [https://ourdoings.com/unlisted/pd6nqve7/2024-12-22 e828710] e39a63f9914146275e31dcda941cc2af74cd1415 User:JeraldClemes817 2 1654 2507 2024-12-23T09:01:50Z JeraldClemes817 1818 Created page with "Watch on posts featuring giveaways or contests. Participating can easily certainly not only record you totally free items yet also present you to brands that give great gifts for women, recyclable washing bags, and even more.<br><br>Here is my page - [https://uconnect.ae/post/695980_just-how-to-pick-the-very-best-online-way-of-life-products-for-your-everyday-pro.html Click Here]" wikitext text/x-wiki Watch on posts featuring giveaways or contests. Participating can easily certainly not only record you totally free items yet also present you to brands that give great gifts for women, recyclable washing bags, and even more.<br><br>Here is my page - [https://uconnect.ae/post/695980_just-how-to-pick-the-very-best-online-way-of-life-products-for-your-everyday-pro.html Click Here] 1e5b635654b0a8519f11eb699ed0ef5961d47e99 User:MillieManns9276 2 1655 2508 2024-12-23T09:22:07Z MillieManns9276 1819 Created page with "Keep an eye on articles including free gifts or even contests. Engaging can not only record you free of cost products however likewise introduce you to brands that deliver outstanding presents for ladies, reusable laundry washing bags, and even more.<br><br>Here is my web page ... [http://markhearnelink.unblog.fr/2024/12/23/reasons-that-budget-friendly-online-daily-way-of-life-products-are-actually-a-must-have/ Check Our Editor Note]" wikitext text/x-wiki Keep an eye on articles including free gifts or even contests. Engaging can not only record you free of cost products however likewise introduce you to brands that deliver outstanding presents for ladies, reusable laundry washing bags, and even more.<br><br>Here is my web page ... [http://markhearnelink.unblog.fr/2024/12/23/reasons-that-budget-friendly-online-daily-way-of-life-products-are-actually-a-must-have/ Check Our Editor Note] 6e455efbc914f8b45872cb618119f7d289acd2d3 User:BradRotton21094 2 1656 2509 2024-12-23T12:16:56Z BradRotton21094 1820 Created page with "Home control in Phuket takes the burden off your take on through offering end-to-end services, consisting of upkeep, occupant associations, and economic monitoring. No matter if you possess a solitary property or a profile of homes, delegating their care to a residential or commercial property control firm ensures they remain in superior shape without demanding continual attention from you.<br><br>my web site - [https://www.tumblr.com/thebucketlistnyc/769907994241761280/..." wikitext text/x-wiki Home control in Phuket takes the burden off your take on through offering end-to-end services, consisting of upkeep, occupant associations, and economic monitoring. No matter if you possess a solitary property or a profile of homes, delegating their care to a residential or commercial property control firm ensures they remain in superior shape without demanding continual attention from you.<br><br>my web site - [https://www.tumblr.com/thebucketlistnyc/769907994241761280/reasons-to-purchase-technician-property-marketing?source=share Check More Details Here] fa2e0cd34362e05da554b5849941e075479bb931 User:PatriciaWest96 2 1657 2510 2024-12-23T13:00:15Z PatriciaWest96 1821 Created page with "Residential property monitoring in Phuket takes the concern off your take on through offering end-to-end services, featuring routine maintenance, tenant associations, and economic control. Regardless if you own a singular rental property or even a portfolio of residential properties, leaving their care to a building administration company ensures they continue to be in optimal state without requiring continuous attention from you.<br><br>Also visit my site :: [https://ww..." wikitext text/x-wiki Residential property monitoring in Phuket takes the concern off your take on through offering end-to-end services, featuring routine maintenance, tenant associations, and economic control. Regardless if you own a singular rental property or even a portfolio of residential properties, leaving their care to a building administration company ensures they continue to be in optimal state without requiring continuous attention from you.<br><br>Also visit my site :: [https://www.deviantart.com/interpropertyphuket Visit This Link] b9aa2f5745e2f717a9ab866ead465952ba45f8dd User:GHAAlex888 2 1658 2511 2024-12-23T13:05:49Z GHAAlex888 1823 Created page with "Residential property administration in Phuket takes the trouble off your shoulders by offering end-to-end services, including servicing, tenant associations, and monetary management. Whether you possess a singular villa or a profile of properties, entrusting their care to a building control provider ensures they stay in optimal shape without requiring consistent interest from you.<br><br>Also visit my blog post ... [https://www.quora.com/Why-is-choosing-property-manageme..." wikitext text/x-wiki Residential property administration in Phuket takes the trouble off your shoulders by offering end-to-end services, including servicing, tenant associations, and monetary management. Whether you possess a singular villa or a profile of properties, entrusting their care to a building control provider ensures they stay in optimal shape without requiring consistent interest from you.<br><br>Also visit my blog post ... [https://www.quora.com/Why-is-choosing-property-management-useful/answer/RaihanKobir-RaihanKobir Learn More] 710ec32a463d94f66b8897da4d9ee534dc4fa560 User:ArnulfoCanterbur 2 1659 2512 2024-12-23T13:17:14Z ArnulfoCanterbur 1822 Created page with "Home administration in Phuket takes the concern off your shoulders by giving end-to-end services, [https://wiki.woge.or.at//index.php?title=Benutzer:Norberto77Q Read From The Link] featuring routine maintenance, lessee connections, and economic management. No matter if you have a singular vacation home or a profile of buildings, delegating their care to a building administration firm ensures they remain in ideal condition without demanding consistent interest from you.<..." wikitext text/x-wiki Home administration in Phuket takes the concern off your shoulders by giving end-to-end services, [https://wiki.woge.or.at//index.php?title=Benutzer:Norberto77Q Read From The Link] featuring routine maintenance, lessee connections, and economic management. No matter if you have a singular vacation home or a profile of buildings, delegating their care to a building administration firm ensures they remain in ideal condition without demanding consistent interest from you.<br><br>Feel free to visit my homepage ... [http://markhearnelink.unblog.fr/2024/12/23/just-how-home-monitoring-in-phuket-may-assist-optimize-your-rental-earnings/ Click This Link] ca636b383f531084c50161766fba1bfe84775156 User:RochelleSpinks 2 1660 2513 2024-12-24T11:38:07Z RochelleSpinks 1825 Created page with "A recruitment agency provides services for sourcing best talent around a variety of business. Whether it's CEO recruitment, CTO recruitment, or tech sales recruitment, they supply tailored services to fulfill unique business demands. As a leading marketing recruitment agency, they offer knowledge in marketing recruitment, [https://munidigital.iie.cl/wiki/index.php?title=Usuario:DanieleRoby4374 Read More Here] customer success recruitment, and much [https://recruitmentpl..." wikitext text/x-wiki A recruitment agency provides services for sourcing best talent around a variety of business. Whether it's CEO recruitment, CTO recruitment, or tech sales recruitment, they supply tailored services to fulfill unique business demands. As a leading marketing recruitment agency, they offer knowledge in marketing recruitment, [https://munidigital.iie.cl/wiki/index.php?title=Usuario:DanieleRoby4374 Read More Here] customer success recruitment, and much [https://recruitmentplus.substack.com/p/primary-traits-to-consider-when-picking Read More Here]. Their emphasis gets on delivering high-grade job solutions for startups and well-known businesses. 3e7f1267a20c9c647be19bf6e30731d53ce65c99 User:RaulA912640120 2 1661 2514 2024-12-24T11:58:48Z RaulA912640120 1827 Created page with "An employment company concentrates in sourcing top ability all over a variety of fields. Whether it's CEO recruitment, CTO recruitment, or even tech sales recruitment, they offer tailored services to fulfill one-of-a-kind business needs. As a leading marketing recruitment agency, they deliver knowledge in marketing recruitment, customer success recruitment, and extra. Their concentration gets on providing high-grade job solutions for start-ups and reputable businesses.<b..." wikitext text/x-wiki An employment company concentrates in sourcing top ability all over a variety of fields. Whether it's CEO recruitment, CTO recruitment, or even tech sales recruitment, they offer tailored services to fulfill one-of-a-kind business needs. As a leading marketing recruitment agency, they deliver knowledge in marketing recruitment, customer success recruitment, and extra. Their concentration gets on providing high-grade job solutions for start-ups and reputable businesses.<br><br>Have a look at my web site: [https://www.instapaper.com/read/1738865888 Learn More] 53025b9ef88eb1a6096052506dcef734c663470e User:PansyBoulton2 2 1662 2515 2024-12-24T12:23:17Z PansyBoulton2 1828 Created page with "A recruitment agency focuses on sourcing [http://www.blurb.com/user/ShaniyafgAnderson?profile_preview=true Check Our Top Pick] talent across different fields. Whether it's CEO recruitment, CTO recruitment, or tech sales recruitment, they use tailored services to fulfill unique business needs. As a leading marketing recruitment agency, they deliver competence in marketing recruitment, customer success recruitment, and [https://wiki.asexuality.org/w/index.php?title=User_t..." wikitext text/x-wiki A recruitment agency focuses on sourcing [http://www.blurb.com/user/ShaniyafgAnderson?profile_preview=true Check Our Top Pick] talent across different fields. Whether it's CEO recruitment, CTO recruitment, or tech sales recruitment, they use tailored services to fulfill unique business needs. As a leading marketing recruitment agency, they deliver competence in marketing recruitment, customer success recruitment, and [https://wiki.asexuality.org/w/index.php?title=User_talk:ColetteBeaufort Check Our Top Pick] much more. Their emphasis performs supplying high quality job solutions for startups and well established businesses. b86310956eb005fcbe3457b46d383eec90df59b6 User:WilhelminaMccord 2 1663 2516 2025-01-04T16:26:05Z WilhelminaMccord 1839 Created page with "An information technology provider Prague concentrates on supplying awesome IT services tailored to businesses of all dimensions. From hosting server administration to cybersecurity, this leading IT provider gives ingenious solutions to enrich functional efficiency. With cutting-edge IT services Prague, they make certain smooth combination, durable safety and security, and dependable support, creating them a relied on companion for businesses looking for thorough IT serv..." wikitext text/x-wiki An information technology provider Prague concentrates on supplying awesome IT services tailored to businesses of all dimensions. From hosting server administration to cybersecurity, this leading IT provider gives ingenious solutions to enrich functional efficiency. With cutting-edge IT services Prague, they make certain smooth combination, durable safety and security, and dependable support, creating them a relied on companion for businesses looking for thorough IT services.<br><br>Visit my blog post: [https://tan-jumpsuit-afa.notion.site/Co-Je-IT-spole-nost-v-Praze-P-il-kat-Pozornost-v-Technik-Pr-myslu-16e4d75a9c7c8047a346d98c7766030d?pvs=4 Visit Website] 23d05cf9d2e2407af53c2154227d26c2e6aa65cc User:MichaelRitz6309 2 1664 2517 2025-01-04T17:00:34Z MichaelRitz6309 1843 Created page with "Deciding on a luxurious accommodation in Prague isn't pretty much lavish surroundings; it is actually concerning developing enduring moments in an alluring area. You'll locate that every single second spent in such an environment really feels absolutely unique, allowing you to immerse your own self in both comfort and type.<br><br>My blog post ... [https://trello.com/b/67743441c61a7df63a7e18b1/ATTI3f6679d246e1fceacd9f5f7eb3b97cb67C28257F/expert-tipy-pro-rezervaci-vysadou..." wikitext text/x-wiki Deciding on a luxurious accommodation in Prague isn't pretty much lavish surroundings; it is actually concerning developing enduring moments in an alluring area. You'll locate that every single second spent in such an environment really feels absolutely unique, allowing you to immerse your own self in both comfort and type.<br><br>My blog post ... [https://trello.com/b/67743441c61a7df63a7e18b1/ATTI3f6679d246e1fceacd9f5f7eb3b97cb67C28257F/expert-tipy-pro-rezervaci-vysadou-resort-v-praze Get More Info] 9b611bd0379787a1658b9630161936d6b4c59911 User:ShanelBalas208 2 1665 2518 2025-01-04T17:06:51Z ShanelBalas208 1844 Created page with "Coaching treatments may be booked at your ease, proper seamlessly in to your occupied lifestyle. The adaptability in scheduling permits you to prioritize your education and learning without having overwhelming your various other commitments. Overall, tailored tutoring certainly not simply improves your scholarly performance yet likewise grows an affection for learning that may last a lifetime.<br><br>Here is my web blog - [https://vuf.minagricultura.gov.co/Lists/Informac..." wikitext text/x-wiki Coaching treatments may be booked at your ease, proper seamlessly in to your occupied lifestyle. The adaptability in scheduling permits you to prioritize your education and learning without having overwhelming your various other commitments. Overall, tailored tutoring certainly not simply improves your scholarly performance yet likewise grows an affection for learning that may last a lifetime.<br><br>Here is my web blog - [https://vuf.minagricultura.gov.co/Lists/Informacin%20Servicios%20Web/DispForm.aspx?ID=10111052 Get More Info] 17eb863aedd9babc4e8285e3b1e346d16bf34cf9 User:EmilioStitt7315 2 1666 2519 2025-01-04T17:10:52Z EmilioStitt7315 1842 Created page with "When you need reputable legal support, trust a skilled attorney in Attleboro. Whether you're seeking an Attleboro criminal defense lawyer or require support along with place preparing, our specialists offer skilled services. Concentrating in wills, trusts, and unlawful defense, we ensure that your lawsuit is managed with utmost care and experience.<br><br>my blog: [https://www.exoltech.us/blogs/248204/The-Role-of-a-Lawyer-in-Attleboro-in-Offender-Defense Read From The Link]" wikitext text/x-wiki When you need reputable legal support, trust a skilled attorney in Attleboro. Whether you're seeking an Attleboro criminal defense lawyer or require support along with place preparing, our specialists offer skilled services. Concentrating in wills, trusts, and unlawful defense, we ensure that your lawsuit is managed with utmost care and experience.<br><br>my blog: [https://www.exoltech.us/blogs/248204/The-Role-of-a-Lawyer-in-Attleboro-in-Offender-Defense Read From The Link] 54b0ee7947312041caacb23f7a46aa4d2bbfeec8 User:GeoffreyMendes0 2 1667 2520 2025-01-04T17:20:00Z GeoffreyMendes0 1846 Created page with "An IT company Prague focuses on delivering awesome IT services adapted to businesses of all dimensions. From hosting server monitoring to cybersecurity, this leading IT firm delivers innovative solutions to enrich functional effectiveness. Along with innovative IT services Prague, they make sure smooth integration, durable safety and [http://www.larsaluarna.se/index.php/How_IT_Companies_In_Prague_Are_Actually_Transforming_Businesses_Along_With_Cloud_Solutions discover m..." wikitext text/x-wiki An IT company Prague focuses on delivering awesome IT services adapted to businesses of all dimensions. From hosting server monitoring to cybersecurity, this leading IT firm delivers innovative solutions to enrich functional effectiveness. Along with innovative IT services Prague, they make sure smooth integration, durable safety and [http://www.larsaluarna.se/index.php/How_IT_Companies_In_Prague_Are_Actually_Transforming_Businesses_Along_With_Cloud_Solutions discover more] security, and reputable support, making them a relied on partner for businesses finding detailed IT services.<br><br>My webpage: [https://www.bitsdujour.com/profiles/Ffo1Rd Discover More] 8ea33aaf573cc19b3fb0cd3ceca89228ee2b6dc7 User:Connie8616 2 1668 2521 2025-01-04T17:22:41Z Connie8616 1845 Created page with "Selecting a luxury accommodation in Prague isn't almost lush settings; it is actually regarding developing enduring memories in an alluring metropolitan area. You'll discover that every minute devoted in such a setup really feels absolutely special, permitting you to immerse on your own in each convenience and type.<br><br>Feel free to visit my blog - [https://guiderinfo.blogspot.com/2025/01/prinosy-zbyvajici-v-luxusni-hotel-v.html Read More From Here]" wikitext text/x-wiki Selecting a luxury accommodation in Prague isn't almost lush settings; it is actually regarding developing enduring memories in an alluring metropolitan area. You'll discover that every minute devoted in such a setup really feels absolutely special, permitting you to immerse on your own in each convenience and type.<br><br>Feel free to visit my blog - [https://guiderinfo.blogspot.com/2025/01/prinosy-zbyvajici-v-luxusni-hotel-v.html Read More From Here] da792d4df05a54296138e12498240936a5eb7cc4 User:GemmaShimp0 2 1669 2522 2025-01-04T18:27:27Z GemmaShimp0 1848 Created page with "Tutoring sessions may be planned at your advantage, fitting flawlessly right into your active life. The adaptability in organizing permits you to focus on your learning without having overwhelming your various other devotions. Overall, personalized tutoring certainly not simply improves your scholarly functionality yet likewise cultivates a passion for [https://bir.localmesh.org/doku.php?id=why_deciding_on_a_pedagogy_se_vice_p_ovide_in_p_ague_can_enhance clicking here]..." wikitext text/x-wiki Tutoring sessions may be planned at your advantage, fitting flawlessly right into your active life. The adaptability in organizing permits you to focus on your learning without having overwhelming your various other devotions. Overall, personalized tutoring certainly not simply improves your scholarly functionality yet likewise cultivates a passion for [https://bir.localmesh.org/doku.php?id=why_deciding_on_a_pedagogy_se_vice_p_ovide_in_p_ague_can_enhance clicking here] discovering that can last a lifetime.<br><br>My page: [https://www.dermandar.com/user/whipminute45/ Clicking Here] 165a00259777cca7577660459f67adf008e67173 User:CRTStephany 2 1670 2523 2025-01-05T05:13:43Z CRTStephany 1853 Created page with "When seeking an expert barbershop in The Colony, clients may expect exceptional service from professional hairdressers and hair stylists. Whether it's a new slick or [https://pipewiki.org/wiki/index.php/User:AndreRodius9 Article Source] a full style remodeling, this barbershop in Richardson and its concerning areas like barbershop Garland and barbershop Mesquite promotion skillful experts. Trust barber Mesquite or even hairstylist Richardson to deliver the best look whe..." wikitext text/x-wiki When seeking an expert barbershop in The Colony, clients may expect exceptional service from professional hairdressers and hair stylists. Whether it's a new slick or [https://pipewiki.org/wiki/index.php/User:AndreRodius9 Article Source] a full style remodeling, this barbershop in Richardson and its concerning areas like barbershop Garland and barbershop Mesquite promotion skillful experts. Trust barber Mesquite or even hairstylist Richardson to deliver the best look whenever.<br><br>my page ... [https://www.tumblr.com/nerdybookwormdetective/771733973344878592/the-effect-of-hair-salons-on-haircut-trends-around?source=share Article Source] 69607a9d2326f5f9307e33fd008dad92a5af7c64 User:NapoleonBlundsto 2 1671 2524 2025-01-05T05:47:02Z NapoleonBlundsto 1856 Created page with "When trying to find a specialist barbershop in The Colony, clients may anticipate exceptional service from expert barbers and hairstylist. Whether it is actually a new slick or a comprehensive design transformation, [https://www.scoop.it/topic/business-by-jarrodstearns/p/4163261726/2025/01/05/leading-hair-salons-in-texas-for-stylists Visit This Link] barbershop in Richardson and its regarding regions like barbershop Garland and [http://archmageriseswiki.com/index.php/Us..." wikitext text/x-wiki When trying to find a specialist barbershop in The Colony, clients may anticipate exceptional service from expert barbers and hairstylist. Whether it is actually a new slick or a comprehensive design transformation, [https://www.scoop.it/topic/business-by-jarrodstearns/p/4163261726/2025/01/05/leading-hair-salons-in-texas-for-stylists Visit This Link] barbershop in Richardson and its regarding regions like barbershop Garland and [http://archmageriseswiki.com/index.php/User:GusT5703617784 Visit This Link] barbershop Mesquite offer trained pros. Trust barber Mesquite or even hair stylist Richardson to supply the excellent look every time. 9697e8e59579f68eaff1b6218a5d16286cf1694a User:GavinCavill 2 1672 2525 2025-01-05T05:53:00Z GavinCavill 1857 Created page with "When searching for a professional barbershop in The Colony, customers can easily expect awesome service from knowledgeable barbers and hairstylist. Whether it is actually a clean trim or a complete type transformation, [https://www.getlisteduae.com/listings/modern-image-barber-stylist This Article] barbershop in Richardson and its own surrounding areas like barbershop Garland and barbershop Mesquite offer skillful specialists. Trust barber Mesquite or hairstylist Richard..." wikitext text/x-wiki When searching for a professional barbershop in The Colony, customers can easily expect awesome service from knowledgeable barbers and hairstylist. Whether it is actually a clean trim or a complete type transformation, [https://www.getlisteduae.com/listings/modern-image-barber-stylist This Article] barbershop in Richardson and its own surrounding areas like barbershop Garland and barbershop Mesquite offer skillful specialists. Trust barber Mesquite or hairstylist Richardson to deliver the perfect look whenever. 2bde63ec45d5fd67b84fc299b5c9e111a6ecdfa9 User:GenesisWxz 2 1673 2526 2025-01-05T05:58:52Z GenesisWxz 1858 Created page with "Purchasing a dash cam for Uber drivers gives added safety and security when traveling. A 4K car dash cam guarantees transparent video, while the most ideal 3-channel dash cam grabs face, log cabin, and rear viewpoints. Try to find a dash cam with night vision, car parking style, and [http://wiki.dark-warriors.net/index.php/The_Developing_Popularity_Of_Dash_Cams:_Why_Drivers_Are_Counting_On_This_Modern_Technology Check Our Top Pick] G-sensor for reputable monitoring, plu..." wikitext text/x-wiki Purchasing a dash cam for Uber drivers gives added safety and security when traveling. A 4K car dash cam guarantees transparent video, while the most ideal 3-channel dash cam grabs face, log cabin, and rear viewpoints. Try to find a dash cam with night vision, car parking style, and [http://wiki.dark-warriors.net/index.php/The_Developing_Popularity_Of_Dash_Cams:_Why_Drivers_Are_Counting_On_This_Modern_Technology Check Our Top Pick] G-sensor for reputable monitoring, plus a dash cam with SD card included for benefit.<br><br>Here is my web site [https://uconnect.ae/post/719144_purchase-4k-car-dashboard-cam-for-optimum-defense-buying-a-dash-cam-for-uber-dri.html Check Our Top Pick] 0bac3a9a7807be6f2d92f1605a4df3701aa8b25d User:NannieFle1825 2 1674 2527 2025-01-05T06:17:04Z NannieFle1825 1859 Created page with "Buying a dash cam for Uber drivers delivers extra protection when driving. A 4K car dash cam makes sure transparent video, while the most effective 3-channel dash cam captures front end, cabin, and rear sights. Seek a dash cam with night vision, vehicle parking mode, and G-sensor for trustworthy surveillance, plus a dash cam with SD card included for ease.<br><br>My web-site [https://rumble.com/v660qfs-purchase-4k-car-dashboard-webcam-for-best-security.html Going Here]" wikitext text/x-wiki Buying a dash cam for Uber drivers delivers extra protection when driving. A 4K car dash cam makes sure transparent video, while the most effective 3-channel dash cam captures front end, cabin, and rear sights. Seek a dash cam with night vision, vehicle parking mode, and G-sensor for trustworthy surveillance, plus a dash cam with SD card included for ease.<br><br>My web-site [https://rumble.com/v660qfs-purchase-4k-car-dashboard-webcam-for-best-security.html Going Here] ea9d772e36529dcd5f5c094a03dd35de4d00cca1 User:MarylinRubio7 2 1675 2528 2025-01-05T06:19:53Z MarylinRubio7 1860 Created page with "Purchasing a dash cam for Uber drivers supplies additional safety and security when traveling. A 4K car dash cam ensures transparent footage, while the most effective 3-channel dash cam records front end, cabin, and rear sights. Seek a dash cam with night vision, parking style, [https://verkaufs-lexikon.de/index.php?title=Benutzer:Broderick9525 Click Here] and G-sensor for trusted monitoring, plus a dash cam with SD card included for convenience.<br><br>my web page; [ht..." wikitext text/x-wiki Purchasing a dash cam for Uber drivers supplies additional safety and security when traveling. A 4K car dash cam ensures transparent footage, while the most effective 3-channel dash cam records front end, cabin, and rear sights. Seek a dash cam with night vision, parking style, [https://verkaufs-lexikon.de/index.php?title=Benutzer:Broderick9525 Click Here] and G-sensor for trusted monitoring, plus a dash cam with SD card included for convenience.<br><br>my web page; [https://www.callupcontact.com/b/businessprofile/Stellar_Sight_Pro/9457641 Click Here] 270284f750a3036571c1ed1d8fdcd9d8d863f1d0 User:DaltonTavares 2 1676 2529 2025-01-05T06:21:43Z DaltonTavares 1862 Created page with "Virtual office uses businesses a pliable, cost-efficient solution for remote job. Along with virtual workspaces, crews can easily team up perfectly from anywhere, accessing tools and [https://accc.rcec.sinica.edu.tw/mediawiki/index.php?title=Virtual_Workplace_Development:_Redefining_The_Future_Of_The_Work_Environment learn more] resources in actual time. This electronic atmosphere fosters efficiency, lowering overhanging costs while keeping expert specifications. Take a..." wikitext text/x-wiki Virtual office uses businesses a pliable, cost-efficient solution for remote job. Along with virtual workspaces, crews can easily team up perfectly from anywhere, accessing tools and [https://accc.rcec.sinica.edu.tw/mediawiki/index.php?title=Virtual_Workplace_Development:_Redefining_The_Future_Of_The_Work_Environment learn more] resources in actual time. This electronic atmosphere fosters efficiency, lowering overhanging costs while keeping expert specifications. Take advantage of virtual office solutions to enhance functions and generate a powerful, dependable job environment for your team.<br><br>My blog: [https://erikachurch.wixsite.com/home/post/the-value-of-virtual-office-for-international-teams Learn More] c8b116ff92e4b58a51a71601d504e08bd99b0211 User:HUGTam164875211 2 1677 2530 2025-01-05T08:42:23Z HUGTam164875211 1867 Created page with "Expert boiler evaluation services in Prague make certain gas boilers are actually secure and effective. Routine gas boiler evaluation helps find concerns early, lessening the danger of break downs. Gas boiler setup experts provide reliable, professional setup to make sure optimum functionality and energy effectiveness. Whether it is actually routine boiler examination or a new gas boiler setup, these services assure assurance and resilient outcomes.<br><br>Also visit my..." wikitext text/x-wiki Expert boiler evaluation services in Prague make certain gas boilers are actually secure and effective. Routine gas boiler evaluation helps find concerns early, lessening the danger of break downs. Gas boiler setup experts provide reliable, professional setup to make sure optimum functionality and energy effectiveness. Whether it is actually routine boiler examination or a new gas boiler setup, these services assure assurance and resilient outcomes.<br><br>Also visit my web site ... [https://www.tumblr.com/catarinalee-sfpc/771810414747140096/p%C5%99esn%C4%9B-v%C4%9Bd%C4%9Bt-jak%C3%BD-by-pochopit-plynov%C3%A9-kotle?source=share Check More Details Here] da30a3fc6520f172b08513d9adccc09c16150495 User:RowenaIsn9296 2 1678 2531 2025-01-05T08:45:21Z RowenaIsn9296 1865 Created page with "Specialist boiler inspection services in Prague make certain gas boilers are actually secure and efficient. Frequent gas boiler evaluation helps spot issues early, decreasing the risk of breakdowns. Gas boiler setup professionals supply trustworthy, skilled installation to guarantee optimal performance and [https://wavedream.wiki/index.php/The_Relevance_Of_Gas_Boiler_Evaluation_And_Installation_In_Prague read more here] energy effectiveness. Whether it's regimen boiler..." wikitext text/x-wiki Specialist boiler inspection services in Prague make certain gas boilers are actually secure and efficient. Frequent gas boiler evaluation helps spot issues early, decreasing the risk of breakdowns. Gas boiler setup professionals supply trustworthy, skilled installation to guarantee optimal performance and [https://wavedream.wiki/index.php/The_Relevance_Of_Gas_Boiler_Evaluation_And_Installation_In_Prague read more here] energy effectiveness. Whether it's regimen boiler evaluation or a brand new gas boiler setup, these services promise confidence and durable end results.<br><br>Visit my page :: [https://www.adpost4u.com/user/profile/3102274 Read More Here] 040b46f88d67c1b8e6475a092121b2c5267cd520 User:StaciShoemaker9 2 1679 2532 2025-01-05T08:49:09Z StaciShoemaker9 1866 Created page with "Specialist boiler evaluation services in Prague make sure gas boilers are secure and reliable. Routine gas boiler evaluation helps recognize concerns early, minimizing the threat of malfunctions. Gas boiler setup professionals offer dependable, skilled installation to ensure ideal efficiency and energy effectiveness. Whether it is actually regimen boiler assessment or even a brand new gas boiler setup, these services promise assurance and enduring results.<br><br>Also vi..." wikitext text/x-wiki Specialist boiler evaluation services in Prague make sure gas boilers are secure and reliable. Routine gas boiler evaluation helps recognize concerns early, minimizing the threat of malfunctions. Gas boiler setup professionals offer dependable, skilled installation to ensure ideal efficiency and energy effectiveness. Whether it is actually regimen boiler assessment or even a brand new gas boiler setup, these services promise assurance and enduring results.<br><br>Also visit my webpage - [https://www.tumblr.com/sherronoshea/771464724072333312/revize-plynov%C3%A9ho-kotle-v-praze-a-okol%C3%AD-servis?source=share Visit Here] 4084d8051d33e4012e1d531eff25a1e0cf80908d User:GwenDuffy19026 2 1680 2533 2025-01-05T11:19:11Z GwenDuffy19026 1870 Created page with "A lot of savings software outlets give straightforward user interfaces and support services, which can easily additionally enrich your experience. You'll find that the price financial savings commonly trigger improved performance and lessened worry, as you may concentrate on what truly concern- growing your company or accomplishing your projects.<br><br>Feel free to surf to my page :: [https://groovestats.com/index.php?page=profile&id=187211 Websites]" wikitext text/x-wiki A lot of savings software outlets give straightforward user interfaces and support services, which can easily additionally enrich your experience. You'll find that the price financial savings commonly trigger improved performance and lessened worry, as you may concentrate on what truly concern- growing your company or accomplishing your projects.<br><br>Feel free to surf to my page :: [https://groovestats.com/index.php?page=profile&id=187211 Websites] 732b316388511eaa8bfaa6bbebdc72dd50da7ad7 User:Shari95U83943779 2 1681 2534 2025-01-05T11:22:56Z Shari95U83943779 1871 Created page with "Several rebate software stores supply uncomplicated user interfaces and support services, which may better enrich your experience. You'll find that the cost financial savings often result in boosted efficiency and lessened anxiety, as you may concentrate on what really issue- expanding your business or accomplishing your tasks.<br><br>Feel free to visit my webpage; [https://quicksoftwareapp.amebaownd.com/posts/56019567 Read More Here]" wikitext text/x-wiki Several rebate software stores supply uncomplicated user interfaces and support services, which may better enrich your experience. You'll find that the cost financial savings often result in boosted efficiency and lessened anxiety, as you may concentrate on what really issue- expanding your business or accomplishing your tasks.<br><br>Feel free to visit my webpage; [https://quicksoftwareapp.amebaownd.com/posts/56019567 Read More Here] 53af8332781d521c7e6f448acdab0270c02c160f User:JulianeArrington 2 1682 2535 2025-01-05T12:13:00Z JulianeArrington 1873 Created page with "A lot of rebate software application outlets give straightforward interfaces and assistance services, which can further improve your experience. You'll locate that the price savings frequently lead to boosted efficiency and decreased tension, as you can center on what really matters- expanding your business or even accomplishing your projects.<br><br>my web-site - [http://able2know.org/user/CelestedfSerrano/ Going Here]" wikitext text/x-wiki A lot of rebate software application outlets give straightforward interfaces and assistance services, which can further improve your experience. You'll locate that the price savings frequently lead to boosted efficiency and decreased tension, as you can center on what really matters- expanding your business or even accomplishing your projects.<br><br>my web-site - [http://able2know.org/user/CelestedfSerrano/ Going Here] 8ec3e20afa7151ab8ab9b36a612694ef74743e89 User:SallieMccue 2 1683 2536 2025-01-06T11:02:55Z SallieMccue 1879 Created page with "Solar wholesalers frequently involve in market study to recognize patterns and adjust their providings accordingly. Through remaining informed regarding innovations in sun modern technology, they may introduce extra efficient doors that provide much better market value for money.<br><br>my homepage; [https://git.fuwafuwa.moe/trialyak14 Clicking Here]" wikitext text/x-wiki Solar wholesalers frequently involve in market study to recognize patterns and adjust their providings accordingly. Through remaining informed regarding innovations in sun modern technology, they may introduce extra efficient doors that provide much better market value for money.<br><br>my homepage; [https://git.fuwafuwa.moe/trialyak14 Clicking Here] 2786b6c971837f820074177ec8966df502d8d6b1 User:AudreyCormier4 2 1684 2537 2025-01-07T07:00:51Z AudreyCormier4 1885 Created page with "Many retailers use special bargains with price cut coupon codes that you will not discover elsewhere. Through staying educated regarding these promos, you access to much better costs and special offers. In a reasonable on-line market, [https://twwrando.com/index.php/User:Alex82U319980 View Our Editors Post] making the most of markdown codes offers you the leverage, allowing you to purchase savvy.<br><br>My webpage [https://uconnect.ae/post/720821_rust-personalizace-naku..." wikitext text/x-wiki Many retailers use special bargains with price cut coupon codes that you will not discover elsewhere. Through staying educated regarding these promos, you access to much better costs and special offers. In a reasonable on-line market, [https://twwrando.com/index.php/User:Alex82U319980 View Our Editors Post] making the most of markdown codes offers you the leverage, allowing you to purchase savvy.<br><br>My webpage [https://uconnect.ae/post/720821_rust-personalizace-nakupni-customizace-je-to-zadne-luxusni-na-internetu-prodej-0.html View Our Editors Post] 74bc8c4973b3e79fdeaac4a36b6ca1b7ae76e7db User:FranciscoBrunker 2 1685 2538 2025-01-07T10:22:30Z FranciscoBrunker 1886 Created page with "Numerous merchants use unique deals via discount rate coupon codes that you won't locate in other places. Through remaining educated concerning these promotions, you get to much better prices and special promotions. In a competitive online market, capitalizing on rebate codes offers you the edge, allowing you to go shopping savvy.<br><br>Here is my site ... [https://biodigitalbusiness.wordpress.com/2025/01/06/presne-jak-vyuzit-cashback-a-kupony-vsechny-spolu-pro-ceskou-o..." wikitext text/x-wiki Numerous merchants use unique deals via discount rate coupon codes that you won't locate in other places. Through remaining educated concerning these promotions, you get to much better prices and special promotions. In a competitive online market, capitalizing on rebate codes offers you the edge, allowing you to go shopping savvy.<br><br>Here is my site ... [https://biodigitalbusiness.wordpress.com/2025/01/06/presne-jak-vyuzit-cashback-a-kupony-vsechny-spolu-pro-ceskou-online-nakupy/ Investigate This Site] 73c60062cf031c13d00e26246cdc6c8314d609f4 User:RebeccaStatton1 2 1686 2539 2025-01-07T10:34:46Z RebeccaStatton1 1888 Created page with "Several retailers supply exclusive deals via discount rate coupon codes that you won't find in other places. By staying updated about these advertisings, you access to far better prices and special deals. In an affordable on-line market, making use of price cut codes provides you the top hand, permitting you to go shopping know-how.<br><br>Also visit my web-site - [https://www.instapaper.com/read/1743861819 Read More From Here]" wikitext text/x-wiki Several retailers supply exclusive deals via discount rate coupon codes that you won't find in other places. By staying updated about these advertisings, you access to far better prices and special deals. In an affordable on-line market, making use of price cut codes provides you the top hand, permitting you to go shopping know-how.<br><br>Also visit my web-site - [https://www.instapaper.com/read/1743861819 Read More From Here] f2f602c38b5f1212fe94ddc7c9b6ec1728461352 User:WilfordFlanigan 2 1687 2540 2025-01-07T10:37:56Z WilfordFlanigan 1889 Created page with "A lot of stores deliver special packages with discount rate coupon codes that you won't discover elsewhere. By remaining notified regarding these promos, you get access to far better rates and special deals. In an affordable on the web market, making the most of rebate codes provides you the leverage, allowing you to look around savvy.<br><br>Look into my webpage; [http://www.mohawkradio.com/band_profile.php?bandid=157243 Visit Here]" wikitext text/x-wiki A lot of stores deliver special packages with discount rate coupon codes that you won't discover elsewhere. By remaining notified regarding these promos, you get access to far better rates and special deals. In an affordable on the web market, making the most of rebate codes provides you the leverage, allowing you to look around savvy.<br><br>Look into my webpage; [http://www.mohawkradio.com/band_profile.php?bandid=157243 Visit Here] 8573294ac2dfcedd84980ee9c9be48cbe929e084 User:MonikaFrisby 2 1688 2541 2025-01-08T06:10:33Z MonikaFrisby 1892 Created page with "Giving premium, bespoke inflight products is essential for boosting the traveler experience. Custom-designed facilities, onboard solutions, and high-end hospitality items assist airline companies distinguish themselves in a significantly open market. Whether it is actually lasting possibilities, luxurious inflight items, or special services customized to a certain airline company's requirements, bespoke inflight items create long lasting opinions for guests. To achieve [..." wikitext text/x-wiki Giving premium, bespoke inflight products is essential for boosting the traveler experience. Custom-designed facilities, onboard solutions, and high-end hospitality items assist airline companies distinguish themselves in a significantly open market. Whether it is actually lasting possibilities, luxurious inflight items, or special services customized to a certain airline company's requirements, bespoke inflight items create long lasting opinions for guests. To achieve [https://anotepad.com/notes/q2atqhn9 Read This Post Here], working together along with experienced airline facility set suppliers and comprehending the necessary functions of bespoke items is actually key. 62ee0c1ce472f3cfe71e1d7553f890cea875683f User:MadonnaRydge56 2 1689 2542 2025-01-08T07:07:54Z MadonnaRydge56 1893 Created page with "Pest control experts in Norway deal with house pests along with a combo of identity, environmentally friendly treatments, preventative actions, and expert competence. Whether you're coping with carpenter ant infestations, mice in house, [https://marvelvsdc.faith/wiki/How_Pest_Control_Professionals_In_Norway_Tackle_Common_Home_Pests click this link] or the annoying silverfish, these professionals deliver adapted solutions that safeguard your home and household from unwan..." wikitext text/x-wiki Pest control experts in Norway deal with house pests along with a combo of identity, environmentally friendly treatments, preventative actions, and expert competence. Whether you're coping with carpenter ant infestations, mice in house, [https://marvelvsdc.faith/wiki/How_Pest_Control_Professionals_In_Norway_Tackle_Common_Home_Pests click this link] or the annoying silverfish, these professionals deliver adapted solutions that safeguard your home and household from unwanted enemies. By partnering along with seasoned pest control services, you may guarantee that your home stays a pest-free refuge year-round.<br><br>Check out my web blog - [http://www.bioguiden.se/redirect.aspx?url=https://www.sk1.no/ Click This Link] 0100042d29d0371d7a1744c01537b26bdf6f5f51 User:Allen807435 2 1690 2543 2025-01-08T07:33:42Z Allen807435 1894 Created page with "Providing top notch, custom inflight products is vital for enhancing the guest experience. Custom-designed features, onboard solutions, and luxury friendliness products aid airlines differentiate themselves in a significantly competitive market. Whether it is actually sustainable possibilities, deluxe inflight items, or even unique services tailored to a particular airline's needs, bespoke inflight products generate enduring impressions for guests. To attain [https://vuf..." wikitext text/x-wiki Providing top notch, custom inflight products is vital for enhancing the guest experience. Custom-designed features, onboard solutions, and luxury friendliness products aid airlines differentiate themselves in a significantly competitive market. Whether it is actually sustainable possibilities, deluxe inflight items, or even unique services tailored to a particular airline's needs, bespoke inflight products generate enduring impressions for guests. To attain [https://vuf.minagricultura.gov.co/Lists/Informacin%20Servicios%20Web/DispForm.aspx?ID=10162242 Visit This Link], working together with skilled airline company feature package suppliers and recognizing the vital components of bespoke products is key. 79ca805a6996522addd17573654d23c9249d7b53 User:TommySonnier010 2 1691 2544 2025-01-09T06:32:10Z TommySonnier010 1897 Created page with "Heat pumps service in Norway makes certain optimum performance and energy effectiveness. Specialist specialists take care of whatever from setup to repair and maintenance. Routine repairing of heat pumps assures long-lasting discounts and peak capability. Along with a countrywide system, customers may rely upon immediate, qualified assistance for all their heat pump needs, creating their homes a lot more relaxed and eco-friendly.<br><br>Also visit my site - [https://vuf...." wikitext text/x-wiki Heat pumps service in Norway makes certain optimum performance and energy effectiveness. Specialist specialists take care of whatever from setup to repair and maintenance. Routine repairing of heat pumps assures long-lasting discounts and peak capability. Along with a countrywide system, customers may rely upon immediate, qualified assistance for all their heat pump needs, creating their homes a lot more relaxed and eco-friendly.<br><br>Also visit my site - [https://vuf.minagricultura.gov.co/Lists/Informacin%20Servicios%20Web/DispForm.aspx?ID=10171167 Clicking Here] d4de2e7b983f69a0a3e1245e6943d86f89de0503 User:JoleneOglesby0 2 1692 2545 2025-01-09T10:58:09Z JoleneOglesby0 1901 Created page with "If you're wanting to conserve money while still getting high-grade end results, it's time to buy CAD software at an inexpensive rate. Cheap CAD software gives you the adaptability to make sensational designs without cracking the bank. Along with cheap CAD programs, you can easily operate smarter, not harder, taking pleasure in top-tier tools without the sharp cost.<br><br>Look at my blog post - [https://www.pinterest.com/peenstitch3/ Additional Resources]" wikitext text/x-wiki If you're wanting to conserve money while still getting high-grade end results, it's time to buy CAD software at an inexpensive rate. Cheap CAD software gives you the adaptability to make sensational designs without cracking the bank. Along with cheap CAD programs, you can easily operate smarter, not harder, taking pleasure in top-tier tools without the sharp cost.<br><br>Look at my blog post - [https://www.pinterest.com/peenstitch3/ Additional Resources] 05e100580070774226e1e7b50f30a52a95d9ef42 User:DeboraMaughan46 2 1693 2546 2025-01-09T11:13:05Z DeboraMaughan46 1902 Created page with "Coffee's ability to promote the release of dopamine can raise your state of mind, adding to a total feeling of health. Thus, regardless if you're dealing with a hectic day or getting ready for a workout, coffee can assist you power through. Just bear in mind to appreciate it in small amounts to maximize its advantages without any unwanted jitters.<br><br>Also visit my web-site; [http://promodj.com/jocelynnewashington Visit This Link]" wikitext text/x-wiki Coffee's ability to promote the release of dopamine can raise your state of mind, adding to a total feeling of health. Thus, regardless if you're dealing with a hectic day or getting ready for a workout, coffee can assist you power through. Just bear in mind to appreciate it in small amounts to maximize its advantages without any unwanted jitters.<br><br>Also visit my web-site; [http://promodj.com/jocelynnewashington Visit This Link] 9897da2d2d2c66b9452b268ff83772c1cacd71c5 User:BennettSimpkinso 2 1694 2547 2025-01-11T07:08:55Z BennettSimpkinso 1904 Created page with "By focusing on entrepreneurship learning, you're not merely prepping on your own for individual effectiveness; you're also adding to more comprehensive social improvement. The significance of the education stretches beyond specific gains and plays a main task in molding blooming neighborhoods and countries.<br><br>Feel free to surf to my web-site [https://www.instapaper.com/read/1744531291 See Details]" wikitext text/x-wiki By focusing on entrepreneurship learning, you're not merely prepping on your own for individual effectiveness; you're also adding to more comprehensive social improvement. The significance of the education stretches beyond specific gains and plays a main task in molding blooming neighborhoods and countries.<br><br>Feel free to surf to my web-site [https://www.instapaper.com/read/1744531291 See Details] d923e2908c6937eb7290677414626c1e32ba0729 User:BrennaCantrell6 2 1695 2548 2025-01-12T03:56:30Z BrennaCantrell6 1905 Created page with "Shingwanggyo Cloud City in South Korea gives innovative, premium work areas developed for partnership and development. With advanced infrastructure and seamless connectivity, Shingwanggyo Cloud City fosters a compelling business atmosphere. [https://share.evernote.com/note/0aafaab9-70eb-b8b7-e6e0-6f01712d8082 This Article] completely included center is perfect for businesses seeking to prosper in a sophisticated environment, [https://wiki.dulovic.tech/index.php/Shingwan..." wikitext text/x-wiki Shingwanggyo Cloud City in South Korea gives innovative, premium work areas developed for partnership and development. With advanced infrastructure and seamless connectivity, Shingwanggyo Cloud City fosters a compelling business atmosphere. [https://share.evernote.com/note/0aafaab9-70eb-b8b7-e6e0-6f01712d8082 This Article] completely included center is perfect for businesses seeking to prosper in a sophisticated environment, [https://wiki.dulovic.tech/index.php/Shingwanggyo_Cloud_City_In_South_Korea:_The_Best_Work_Area_For_Modern_Professionals This Article] giving premium services and a community-driven environment. d34d6545f9d82c61fa80e629d057659af9946eb3 User:PatHargis25 2 1696 2549 2025-01-14T04:33:14Z PatHargis25 1909 Created page with "Expert small company bookkeeping services in Waterbury assistance enhance monetary monitoring. With outsourced bookkeeping services, businesses have precise monetary records and [https://disgaeawiki.info/index.php/User:KeriCollings711 e828750] reconciliation services. They likewise profit from bookkeeping with QuickBooks, which simplifies day-to-day purchases. Whether it's bookkeeping for startups or payroll management services, these budget friendly solutions enable bu..." wikitext text/x-wiki Expert small company bookkeeping services in Waterbury assistance enhance monetary monitoring. With outsourced bookkeeping services, businesses have precise monetary records and [https://disgaeawiki.info/index.php/User:KeriCollings711 e828750] reconciliation services. They likewise profit from bookkeeping with QuickBooks, which simplifies day-to-day purchases. Whether it's bookkeeping for startups or payroll management services, these budget friendly solutions enable businesses to concentrate on growth.<br><br>Check out my page - [https://ourdoings.com/abagailaguirre/2025-01-10 e828750] 687e49332cf8b01d90e165e9b198c11e17066099 User:RubyeStinnett6 2 1697 2550 2025-01-14T04:47:03Z RubyeStinnett6 1911 Created page with "Qualified small company bookkeeping services in Waterbury support enhance economic monitoring. With outsourced bookkeeping services, businesses take advantage of correct monetary reports and reconciliation services. They additionally profit from bookkeeping with QuickBooks, which simplifies daily purchases. Whether it is actually bookkeeping for startups or [https://fakenews.win/wiki/User:WilbertR21 Article Source] even payroll management services, these cost effective..." wikitext text/x-wiki Qualified small company bookkeeping services in Waterbury support enhance economic monitoring. With outsourced bookkeeping services, businesses take advantage of correct monetary reports and reconciliation services. They additionally profit from bookkeeping with QuickBooks, which simplifies daily purchases. Whether it is actually bookkeeping for startups or [https://fakenews.win/wiki/User:WilbertR21 Article Source] even payroll management services, these cost effective solutions enable businesses to concentrate on development.<br><br>Here is my web-site; [https://electricidadyalgomaspr.weebly.com/home/what-to-get-out-of-qualified-bookkeeping-services-in-waterbury Article Source] a7372e9a6b96dd4099de3c456acf45853b2377a5 User:DaniCarmichael 2 1698 2551 2025-01-14T05:32:47Z DaniCarmichael 1912 Created page with "Professional small company bookkeeping services in Waterbury assistance streamline monetary control. Along with outsourced bookkeeping services, businesses have accurate economic files and reconciliation services. They also take advantage of bookkeeping with QuickBooks, which streamlines daily transactions. Whether it is actually bookkeeping for startups or even payroll management services, these inexpensive solutions allow businesses to concentrate on growth.<br><br>Als..." wikitext text/x-wiki Professional small company bookkeeping services in Waterbury assistance streamline monetary control. Along with outsourced bookkeeping services, businesses have accurate economic files and reconciliation services. They also take advantage of bookkeeping with QuickBooks, which streamlines daily transactions. Whether it is actually bookkeeping for startups or even payroll management services, these inexpensive solutions allow businesses to concentrate on growth.<br><br>Also visit my site ... [https://www.onfeetnation.com/profiles/blogs/how-choosing-an-accountant-in-waterbury-ct-can-improve-your?xg_source=activity Read More Here] 333d63282cf3d7a36e2191785b6b4f4930397527 User:Shaun111820 2 1699 2552 2025-01-14T06:03:44Z Shaun111820 1913 Created page with "The task of security video cameras in improving public safety and security may certainly not be actually overemphasized. From preventing criminal offense to providing real-time tracking, their applications are substantial and impactful. Technological developments, such as motion sensor security cameras, solar powered outdoor security video cameras, and smart home surveillance cameras, remain to make monitoring [https://rumble.com/v68w3xy-budget-friendly-security-cameras-..." wikitext text/x-wiki The task of security video cameras in improving public safety and security may certainly not be actually overemphasized. From preventing criminal offense to providing real-time tracking, their applications are substantial and impactful. Technological developments, such as motion sensor security cameras, solar powered outdoor security video cameras, and smart home surveillance cameras, remain to make monitoring [https://rumble.com/v68w3xy-budget-friendly-security-cameras-for-every-single-demand.html Find More About This] helpful and easily accessible. Whether in urban facilities, rural places, homes, or businesses, these systems are actually essential tools for creating safer environments. 9a1c31a1e6f40e0428b6008d741f081859feca6d User:Dana92F4533847 2 1700 2553 2025-01-14T07:17:14Z Dana92F4533847 1917 Created page with "Owning a residence at Roswalt Zyon Oshiwara assures higher returns as a result of to its premium location in Mumbai. This project uses present day features, roomy 4 BHK condos, and awesome connection. The well-designed Roswalt Zyon floor plan accommodates luxurious living, producing it best for those finding comfort and sophistication. For more particulars, look into the Roswalt Zyon brochure and contact info.<br><br>My web-site; [https://flipboard.com/@cletusmcvey/look-..." wikitext text/x-wiki Owning a residence at Roswalt Zyon Oshiwara assures higher returns as a result of to its premium location in Mumbai. This project uses present day features, roomy 4 BHK condos, and awesome connection. The well-designed Roswalt Zyon floor plan accommodates luxurious living, producing it best for those finding comfort and sophistication. For more particulars, look into the Roswalt Zyon brochure and contact info.<br><br>My web-site; [https://flipboard.com/@cletusmcvey/look-into-roswalt-zyon-jogeshwari-west-6aelqofry Going Here] 405f24032bd54f326ed58ff6fff8e6c79aa3147a User:MadgeWoolnough 2 1701 2554 2025-01-14T08:24:43Z MadgeWoolnough 1919 Created page with "The increase of accounting and audit firms in the UAE's business community mirrors the developing complexity of the financial globe and the nation's emergence as a global business forerunner. Audit company in UAE, tax consultancy organization in UAE, and bookkeeping organization in UAE services carry on to support businesses in their experience in the direction of conformity, growth, and durability. As businesses in the UAE remain to prosper, companies like JAXA Chartere..." wikitext text/x-wiki The increase of accounting and audit firms in the UAE's business community mirrors the developing complexity of the financial globe and the nation's emergence as a global business forerunner. Audit company in UAE, tax consultancy organization in UAE, and bookkeeping organization in UAE services carry on to support businesses in their experience in the direction of conformity, growth, and durability. As businesses in the UAE remain to prosper, companies like JAXA Chartered Accountants, along with their experience and worldwide presence, will definitely stay vital partners in browsing the monetary challenges of the future.<br><br>my blog: [https://www.tumblr.com/sybilandbranson/772552044997427200/why-your-business-demands-an-accounting-and-audit?source=share Clicking Here] 2f66e671c4e908bb0009a4b703bca9c5dd3164bf User:JoesphSharp286 2 1702 2555 2025-01-14T12:12:11Z JoesphSharp286 1921 Created page with "Top notch parts provide the required strength and resilience, eventually contributing to better efficiency. Routine maintenance and gradation of these types of assistances guarantee they operate at peak performance, decreasing the danger of mistakes throughout procedures.<br><br>my blog - [https://vnseo.edu.vn/members/ferrymap4.195354.html Discover More]" wikitext text/x-wiki Top notch parts provide the required strength and resilience, eventually contributing to better efficiency. Routine maintenance and gradation of these types of assistances guarantee they operate at peak performance, decreasing the danger of mistakes throughout procedures.<br><br>my blog - [https://vnseo.edu.vn/members/ferrymap4.195354.html Discover More] 0e498ecb96ef547ad2bf7abeae024f60104f12c7 User:DulcieCarrasco 2 1703 2556 2025-01-14T12:14:26Z DulcieCarrasco 1922 Created page with "High-grade elements provide the necessary rigidness and toughness, eventually contributing to much better performance. Routine upkeep and gradation of these kinds of supports assure they work at peak effectiveness, reducing the danger of mistakes throughout operations.<br><br>Look at my website :: [https://www.tumblr.com/clairepeterson5581/772437245058809856/typische-schwierigkeiten-behandelt-durch-die?source=share Know More]" wikitext text/x-wiki High-grade elements provide the necessary rigidness and toughness, eventually contributing to much better performance. Routine upkeep and gradation of these kinds of supports assure they work at peak effectiveness, reducing the danger of mistakes throughout operations.<br><br>Look at my website :: [https://www.tumblr.com/clairepeterson5581/772437245058809856/typische-schwierigkeiten-behandelt-durch-die?source=share Know More] 9f90e7bf7e84b41b88e5832b999febac4b4eca61 User:CarolCase4699 2 1704 2557 2025-01-14T12:21:18Z CarolCase4699 1923 Created page with "Always clear up the gas policy when reserving and inspect the fuel scale at pick-up before renting vehicle in UK. Understanding these options warranties you won't be captured off guard and can help you stay clear of unforeseen charges.<br><br>my page; [https://intern.ee.aeust.edu.tw/home.php?mod=space&uid=1541208 Additional Resources]" wikitext text/x-wiki Always clear up the gas policy when reserving and inspect the fuel scale at pick-up before renting vehicle in UK. Understanding these options warranties you won't be captured off guard and can help you stay clear of unforeseen charges.<br><br>my page; [https://intern.ee.aeust.edu.tw/home.php?mod=space&uid=1541208 Additional Resources] 691059d761d181bd53e6d499f92365b90c2023e6 User:AntonioSher3994 2 1705 2558 2025-01-14T12:31:41Z AntonioSher3994 1924 Created page with "Constantly make clear the gas policy when scheduling and inspect the gas gauge at pickup prior to renting out car in UK. Comprehending these alternatives guarantees you will not be captured off guard and can help you avoid unanticipated costs.<br><br>Also visit my homepage; [https://papaly.com/categories/share?id=7616f53eba504c04a2d6fda6384e9a27 Clicking Here]" wikitext text/x-wiki Constantly make clear the gas policy when scheduling and inspect the gas gauge at pickup prior to renting out car in UK. Comprehending these alternatives guarantees you will not be captured off guard and can help you avoid unanticipated costs.<br><br>Also visit my homepage; [https://papaly.com/categories/share?id=7616f53eba504c04a2d6fda6384e9a27 Clicking Here] 7e849761c59d2517196d26683cab7f62568d4e0a User:JamelRickard386 2 1706 2559 2025-01-14T12:37:18Z JamelRickard386 1925 Created page with "Always clear up the fuel plan when booking and evaluate the fuel gauge at pickup before renting auto in UK. Comprehending these choices guarantees you won't be captured off guard and can aid you prevent unanticipated fees.<br><br>My blog post; [https://ourdoings.com/unlisted/pd6nqve7/2025-01-08 e828747]" wikitext text/x-wiki Always clear up the fuel plan when booking and evaluate the fuel gauge at pickup before renting auto in UK. Comprehending these choices guarantees you won't be captured off guard and can aid you prevent unanticipated fees.<br><br>My blog post; [https://ourdoings.com/unlisted/pd6nqve7/2025-01-08 e828747] 08c82d2764ecc5b3a1895bb57ef1a8a95291559a User:DesireeBreillat 2 1707 2560 2025-01-14T12:44:57Z DesireeBreillat 1926 Created page with "Constantly clarify the gas plan when reserving and examine the gas scale at pick-up before leasing auto in UK. Comprehending these options warranties you won't be captured unsuspecting and can assist you prevent unforeseen charges.<br><br>My site; [https://anotepad.com/notes/bdm4spm7 Websites]" wikitext text/x-wiki Constantly clarify the gas plan when reserving and examine the gas scale at pick-up before leasing auto in UK. Comprehending these options warranties you won't be captured unsuspecting and can assist you prevent unforeseen charges.<br><br>My site; [https://anotepad.com/notes/bdm4spm7 Websites] df644ebc931b3142d113d568dfd9a8eb9908320d User:Charles8767 2 1708 2561 2025-01-18T03:55:49Z Charles8767 1928 Created page with "Employing the best concrete service provider is essential for [https://drapia.org/11-WIKI/index.php/User:ReginaShipley Discover More Here] sensational, resilient end results. For experienced workmanship in stamped concrete Denver, The Concrete Company is the absolute best selection. Known for professionalism and reliability and extraordinary job, they stand apart with concrete companies Denver. Select them for sturdy, elegant projects that improve your residential prope..." wikitext text/x-wiki Employing the best concrete service provider is essential for [https://drapia.org/11-WIKI/index.php/User:ReginaShipley Discover More Here] sensational, resilient end results. For experienced workmanship in stamped concrete Denver, The Concrete Company is the absolute best selection. Known for professionalism and reliability and extraordinary job, they stand apart with concrete companies Denver. Select them for sturdy, elegant projects that improve your residential property.<br><br>Feel free to visit my blog post; [https://dailycontractornews.wordpress.com/ Discover More Here] 737555d7fe86b8ea7935e3d430b24dda64a88c6e User:WesleyFaulding9 2 1709 2562 2025-01-18T03:59:11Z WesleyFaulding9 1929 Created page with "Choosing the best concrete professional is actually important for spectacular, resilient results. For professional workmanship in stamped concrete Denver, The Concrete Company is the most effective option. Understood for professionalism and trust and exceptional work, they stand apart amongst concrete companies Denver. Choose them for long lasting, exquisite jobs that boost [https://dailycontractornews.wordpress.com/2025/01/15/the-ultimate-guide-to-choosing-a-concrete-co..." wikitext text/x-wiki Choosing the best concrete professional is actually important for spectacular, resilient results. For professional workmanship in stamped concrete Denver, The Concrete Company is the most effective option. Understood for professionalism and trust and exceptional work, they stand apart amongst concrete companies Denver. Choose them for long lasting, exquisite jobs that boost [https://dailycontractornews.wordpress.com/2025/01/15/the-ultimate-guide-to-choosing-a-concrete-contractor-in-denver/ Get Idea About Your Bit] property. e114321999e53bd8d61c42f74d9472cb3a2d468a User:WilbertPainter7 2 1710 2563 2025-01-19T06:12:23Z WilbertPainter7 1931 Created page with "Tapping the services of expert kitchen builders and washroom designers in Sydney, Australia makes sure smooth kitchen remodel and bathroom renovation jobs. Seasoned professionals supply high-grade kitchen design and bathroom design modified to clients' requirements. Whether it is actually a small bathroom renovation or even a total bathroom remodel, these skillful professionals take transformative layouts to every home makeover.<br><br>My webpage - [https://technologyrhi..." wikitext text/x-wiki Tapping the services of expert kitchen builders and washroom designers in Sydney, Australia makes sure smooth kitchen remodel and bathroom renovation jobs. Seasoned professionals supply high-grade kitchen design and bathroom design modified to clients' requirements. Whether it is actually a small bathroom renovation or even a total bathroom remodel, these skillful professionals take transformative layouts to every home makeover.<br><br>My webpage - [https://technologyrhino.mystrikingly.com/blog/the-importance-of-professional-cooking-area-and-bathroom-redesigns-in-sydney Visit Here] 9e353a8adc906d5bcc72bb376c64ba454fd65434 User:BrennaWolinski0 2 1711 2564 2025-01-19T09:44:07Z BrennaWolinski0 1933 Created page with "Robust design of hydraulic steady relaxes guarantees that they may tolerate the powers generated in the course of fast machining, preserving their grip under vibrant conditions. This stability not only boosts the surface finish of the machined parts yet likewise prolongs resource life, decreasing the demand for frequent substitutes.<br><br>Also visit my website - [https://jonasmcarthur.dropmark.com/1846153/35625957 View Source]" wikitext text/x-wiki Robust design of hydraulic steady relaxes guarantees that they may tolerate the powers generated in the course of fast machining, preserving their grip under vibrant conditions. This stability not only boosts the surface finish of the machined parts yet likewise prolongs resource life, decreasing the demand for frequent substitutes.<br><br>Also visit my website - [https://jonasmcarthur.dropmark.com/1846153/35625957 View Source] 74e1412628ee0d1a9327f5fa3178520718f77a22 User:EzekielWoodfull 2 1712 2565 2025-01-19T09:49:30Z EzekielWoodfull 1934 Created page with "Robust design of gas consistent relaxes warranties that they can easily endure the pressures created during the course of high-speed machining, sustaining their grasp under powerful situations. This reliability not just improves the surface area appearance of the machined parts but additionally extends resource lifestyle, lowering the need for regular replacements.<br><br>Take a look at my web page: [https://webhitlist.com/profiles/blogs/impresionante-atributos-de-auto-c..." wikitext text/x-wiki Robust design of gas consistent relaxes warranties that they can easily endure the pressures created during the course of high-speed machining, sustaining their grasp under powerful situations. This reliability not just improves the surface area appearance of the machined parts but additionally extends resource lifestyle, lowering the need for regular replacements.<br><br>Take a look at my web page: [https://webhitlist.com/profiles/blogs/impresionante-atributos-de-auto-centrado-hidr-ulico-constante-y Available Here] c617ca6592b313a4d43ed6ebb43f7654cdf013e0 User:MerriForte874 2 1713 2566 2025-01-19T09:55:47Z MerriForte874 1935 Created page with "Strong design of gas consistent rests promises that they can easily withstand the forces created during high-speed machining, keeping their grasp under dynamic conditions. This reliability not only enhances the area finish of the machined parts but also extends device lifestyle, lessening the requirement for frequent replacements.<br><br>my web-site - [https://git.fuwafuwa.moe/selectsilk7 Read More From Here]" wikitext text/x-wiki Strong design of gas consistent rests promises that they can easily withstand the forces created during high-speed machining, keeping their grasp under dynamic conditions. This reliability not only enhances the area finish of the machined parts but also extends device lifestyle, lessening the requirement for frequent replacements.<br><br>my web-site - [https://git.fuwafuwa.moe/selectsilk7 Read More From Here] efeae12f915a9d63f9d7ec1be756967d7d3b111b User:EllisMelba0699 2 1714 2567 2025-01-19T09:59:52Z EllisMelba0699 1938 Created page with "Strong design of hydraulic stable rests warranties that they can tolerate the pressures generated throughout high-speed machining, preserving their grip under dynamic conditions. This security certainly not only improves the surface area coating of the machined components yet also extends device lifestyle, decreasing the requirement for frequent replacements.<br><br>my page ... [https://electricidadyalgomaspr.weebly.com/home/principales-razones-a-elegir-auto-centrado-hid..." wikitext text/x-wiki Strong design of hydraulic stable rests warranties that they can tolerate the pressures generated throughout high-speed machining, preserving their grip under dynamic conditions. This security certainly not only improves the surface area coating of the machined components yet also extends device lifestyle, decreasing the requirement for frequent replacements.<br><br>my page ... [https://electricidadyalgomaspr.weebly.com/home/principales-razones-a-elegir-auto-centrado-hidraulico-constante-y-estable-descansa-para-su-mecanizado-requerimientos Get More Info] ff767ccebeca2abf1d4208f2aa1e6174c8afa1f6 User:LenardBourgeois 2 1715 2568 2025-01-19T10:03:28Z LenardBourgeois 1937 Created page with "Chartered accountants in England play an essential duty in the audit preparation method for business. By guaranteeing conformity along with legal criteria, managing economic documents, and carrying out complete pre-audit testimonials, these specialists relieve potential inconsistencies and enrich monetary integrity. The on-going assistance and adapted advice supplied through chartered accountants promote a deeper understanding of sophisticated policies, essentially insti..." wikitext text/x-wiki Chartered accountants in England play an essential duty in the audit preparation method for business. By guaranteeing conformity along with legal criteria, managing economic documents, and carrying out complete pre-audit testimonials, these specialists relieve potential inconsistencies and enrich monetary integrity. The on-going assistance and adapted advice supplied through chartered accountants promote a deeper understanding of sophisticated policies, essentially instilling confidence amongst stakeholders. Their competence not simply simplifies review however also adds substantially to the general financial health and wellness of small enterprises.<br><br>My blog [https://reviewsandco.blogspot.com/2025/01/important-attributes-to-try-to-find-in.html Investigate This Site] e49b111acaeab2f4eed49b0ea4181b2f4eccdc80 User:LasonyaKean8967 2 1716 2569 2025-01-19T10:04:18Z LasonyaKean8967 1939 Created page with "Chartered accountants in England play a crucial task in the audit planning procedure for little businesses. By making sure observance along with lawful specifications, arranging financial reports, and performing thorough pre-audit evaluations, these professionals mitigate possible differences and boost economic honesty. The continuous help and adapted direction provided through chartered accountants cultivate a deeper understanding of complex rules, inevitably instilling..." wikitext text/x-wiki Chartered accountants in England play a crucial task in the audit planning procedure for little businesses. By making sure observance along with lawful specifications, arranging financial reports, and performing thorough pre-audit evaluations, these professionals mitigate possible differences and boost economic honesty. The continuous help and adapted direction provided through chartered accountants cultivate a deeper understanding of complex rules, inevitably instilling peace of mind one of stakeholders. Their experience not merely simplifies review yet additionally adds substantially to the general economic health and wellness of little ventures.<br><br>My site: [https://www.storeboard.com/noahperkins/images/employ-an-accounting-professional-in-england/1112651 Available Here] a825cb565b01bafb3562d0fb568dd7604632cfb6 User:EmeryBrack13 2 1717 2570 2025-01-19T10:48:35Z EmeryBrack13 1940 Created page with "Chartered accountants in England play an indispensable job in the review planning procedure for local business. By making certain observance with lawful criteria, coordinating financial reports, and [https://the07k.wiki/index.php?title=User:ArnoldoE72 Learn More Here] performing comprehensive pre-audit testimonials, these experts mitigate potential inconsistencies and enrich monetary integrity. The on-going help and tailored assistance offered by chartered accountants e..." wikitext text/x-wiki Chartered accountants in England play an indispensable job in the review planning procedure for local business. By making certain observance with lawful criteria, coordinating financial reports, and [https://the07k.wiki/index.php?title=User:ArnoldoE72 Learn More Here] performing comprehensive pre-audit testimonials, these experts mitigate potential inconsistencies and enrich monetary integrity. The on-going help and tailored assistance offered by chartered accountants encourage a much deeper understanding of sophisticated policies, eventually instilling peace of mind among stakeholders. Their knowledge not merely simplifies analysis however additionally provides notably to the overall monetary wellness of small ventures.<br><br>My site :: [https://telegra.ph/When-to-Tap-The-Services-Of-a-Chartered-Accounting-Professional-in-England-for-Your-Business-01-12 Learn More Here] b49031aa4a9df92e9b2f88187e320d21b7dd8247 User:JeannineClaborn 2 1718 2571 2025-01-21T09:32:25Z JeannineClaborn 1943 Created page with "Obtaining the best look demands the best beard grooming leaner and finest clippers for beard. Men may enjoy a pointy look with fade reducing hairstyle alternatives like crew cut fade hairstyle or even undercut hairstyle man. Beard concepts for guys like goatee and beard or face strap beards lift any style, making sure impeccable men's grooming.<br><br>my website: [https://spoonacular.com/profile/sariahekeller/ Read My Reviews Here]" wikitext text/x-wiki Obtaining the best look demands the best beard grooming leaner and finest clippers for beard. Men may enjoy a pointy look with fade reducing hairstyle alternatives like crew cut fade hairstyle or even undercut hairstyle man. Beard concepts for guys like goatee and beard or face strap beards lift any style, making sure impeccable men's grooming.<br><br>my website: [https://spoonacular.com/profile/sariahekeller/ Read My Reviews Here] bcc9d7fb5db72ae4f4e5e80ea370a7b3e1c387c4 User:MarkMarroquin 2 1719 2572 2025-01-21T09:49:27Z MarkMarroquin 1944 Created page with "A dependable Strong Password Generator guarantees first-class safety by using an user-friendly method to generate strong password mixtures. This password generator supplies users with a random password generator that generates extremely safe, unique passwords. By utilizing this tool, people can effectively generate strong password security for their on the web information and [https://wolvesbaneuo.com/wiki/index.php/User:Leilani15K View Source] accounts, safeguarding th..." wikitext text/x-wiki A dependable Strong Password Generator guarantees first-class safety by using an user-friendly method to generate strong password mixtures. This password generator supplies users with a random password generator that generates extremely safe, unique passwords. By utilizing this tool, people can effectively generate strong password security for their on the web information and [https://wolvesbaneuo.com/wiki/index.php/User:Leilani15K View Source] accounts, safeguarding them from cyber risks.<br><br>Take a look at my blog ... [https://www.quora.com/What-is-the-best-password-generator/answer/Brayan-Maddox View Source] 0dfc34a70b714e02e0e98e5ec978fa12d2657d0c User:IVNInes379502 2 1720 2573 2025-01-21T09:52:31Z IVNInes379502 1945 Created page with "Obtaining the excellent look needs the right beard grooming trimmer and absolute best clippers for beard. Men may enjoy a pointy appeal along with fade cutting hairdo possibilities like crew cut fade hairstyle or [https://biipsl.shoutwiki.com/wiki/The_Expanding_Trend_Of_Maintainable_Grooming_Items_For_Men going here] even undercut haircut man. Beard styles for men like goatee and beard or even chin band beards elevate any sort of design, ensuring exquisite men's groomin..." wikitext text/x-wiki Obtaining the excellent look needs the right beard grooming trimmer and absolute best clippers for beard. Men may enjoy a pointy appeal along with fade cutting hairdo possibilities like crew cut fade hairstyle or [https://biipsl.shoutwiki.com/wiki/The_Expanding_Trend_Of_Maintainable_Grooming_Items_For_Men going here] even undercut haircut man. Beard styles for men like goatee and beard or even chin band beards elevate any sort of design, ensuring exquisite men's grooming.<br><br>Here is my homepage; [https://pgminisci910.weebly.com/home/the-function-of-beard-oils-in-hair-and-beard-care-items-for-mens-grooming Going Here] 76d941a1291edf399cb9664392b0d708b435a8d9 User:ElkeBuvelot373 2 1721 2574 2025-01-21T09:55:02Z ElkeBuvelot373 1946 Created page with "Achieving the best fade reducing hairstyle or even undercut haircut guy calls for quality products. Beard grooming leaner and ideal clippers for beard help make pointy beard styles guys, whether for a goatee and beard combo or chin strap beards. Along with the best hair clipper shields, guys can easily keep their men's guy bun or hair bun for guys effortlessly.<br><br>my web page ... [https://gettr.com/post/p3fz47j7ebd Click Here]" wikitext text/x-wiki Achieving the best fade reducing hairstyle or even undercut haircut guy calls for quality products. Beard grooming leaner and ideal clippers for beard help make pointy beard styles guys, whether for a goatee and beard combo or chin strap beards. Along with the best hair clipper shields, guys can easily keep their men's guy bun or hair bun for guys effortlessly.<br><br>my web page ... [https://gettr.com/post/p3fz47j7ebd Click Here] f3902c38e7479e2178634b49718562c045dd79d4 User:HungKillinger 2 1722 2575 2025-01-21T10:08:27Z HungKillinger 1949 Created page with "A dependable Strong Password Generator guarantees high-level security through supplying an user-friendly technique to generate strong password mixtures. This password generator [http://bwiki.dirkmeyer.info/index.php?title=Benutzer:MartaMark26136 Click Here] delivers users along with a random password generator that produces strongly safe, special passwords. By utilizing this tool, individuals can very easily generate strong password protection for their on the internet..." wikitext text/x-wiki A dependable Strong Password Generator guarantees high-level security through supplying an user-friendly technique to generate strong password mixtures. This password generator [http://bwiki.dirkmeyer.info/index.php?title=Benutzer:MartaMark26136 Click Here] delivers users along with a random password generator that produces strongly safe, special passwords. By utilizing this tool, individuals can very easily generate strong password protection for their on the internet information and accounts, securing all of them from cyber risks.<br><br>Also visit my website; [https://medium.com/@JayceJones/how-an-online-password-generator-can-help-improve-your-digital-security-e5545cf9ac17 Click Here] 83cedaa423d4e6147d3779a0f6c6de3fdbd9255f User:ShaynaCoffill1 2 1723 2576 2025-01-21T10:21:11Z ShaynaCoffill1 1950 Created page with "Attaining the excellent fade reducing hairstyle or undercut hairstyle male needs quality products. Beard grooming trimmer and absolute best clippers for beard help produce pointy beard concepts males, whether for a goatee and beard combo or even face band beards. Along with the appropriate hair clipper shields, [https://disgaeawiki.info/index.php/User:HarriettMathew2 Read More From Here] guys can sustain their men's man bun or hair bun for men easily.<br><br>Take a look..." wikitext text/x-wiki Attaining the excellent fade reducing hairstyle or undercut hairstyle male needs quality products. Beard grooming trimmer and absolute best clippers for beard help produce pointy beard concepts males, whether for a goatee and beard combo or even face band beards. Along with the appropriate hair clipper shields, [https://disgaeawiki.info/index.php/User:HarriettMathew2 Read More From Here] guys can sustain their men's man bun or hair bun for men easily.<br><br>Take a look at my homepage [https://www.ethicalhacker.net/members/josheshort/profile/ Read More From Here] 04fc8dd4a24704d369b38c4992a37cea1a890823 User:WilburnCapra16 2 1724 2577 2025-01-21T10:30:49Z WilburnCapra16 1951 Created page with "The Strong Password Generator is a highly effective tool made to assist users produce powerful passwords effortlessly. This random password generator provides adjustable alternatives, enabling users to create distinct and secure passwords. Using this password generator strong in security, users may effortlessly generate solid passwords to defend their on the web accounts from prospective risks.<br><br>Stop by my web page :: [https://www.tumblr.com/darkette/77117361966666..." wikitext text/x-wiki The Strong Password Generator is a highly effective tool made to assist users produce powerful passwords effortlessly. This random password generator provides adjustable alternatives, enabling users to create distinct and secure passwords. Using this password generator strong in security, users may effortlessly generate solid passwords to defend their on the web accounts from prospective risks.<br><br>Stop by my web page :: [https://www.tumblr.com/darkette/771173619666665473/why-a-complex-password-generator-is-your-best?source=share Visit Here] 63be2747c67baa8ad8fc70bdd6bb986075c78eac User:KelleyUuz23112 2 1725 2578 2025-01-22T06:40:50Z KelleyUuz23112 1952 Created page with "KMS Auto Net activator is the best solution for activating Windows and Office without the requirement for costly licenses. Along with assistance for KMSAuto Windows 10, KMSAuto Windows 11, and other models, [https://pgminisci910.weebly.com/home/what-is-kmsauto-activator-and-how-does-it-function Investigate This Site] tool is largely made use of in nations like Ukraine, Russia, Indonesia, and Mexico. KMS Auto tool is actually trusted for seamless activation and performanc..." wikitext text/x-wiki KMS Auto Net activator is the best solution for activating Windows and Office without the requirement for costly licenses. Along with assistance for KMSAuto Windows 10, KMSAuto Windows 11, and other models, [https://pgminisci910.weebly.com/home/what-is-kmsauto-activator-and-how-does-it-function Investigate This Site] tool is largely made use of in nations like Ukraine, Russia, Indonesia, and Mexico. KMS Auto tool is actually trusted for seamless activation and performance. Download KMSAuto activator for a life-time activation experience. add56e32130db61f508b7e0f479b58930b953364 User:ChelseaUqa 2 1726 2579 2025-01-22T06:45:43Z ChelseaUqa 1953 Created page with "Achieving the excellent look requires the best beard grooming leaner and absolute best clippers for beard. Men can enjoy a sharp appeal with fade cutting hairdo possibilities like crew cut fade hairstyle or even undercut haircut man. Beard designs for guys like goatee and beard or jaw strap beards increase any design, guaranteeing impeccable men's grooming.<br><br>my web site - [http://able2know.org/user/gabrielechapman/ Discover More]" wikitext text/x-wiki Achieving the excellent look requires the best beard grooming leaner and absolute best clippers for beard. Men can enjoy a sharp appeal with fade cutting hairdo possibilities like crew cut fade hairstyle or even undercut haircut man. Beard designs for guys like goatee and beard or jaw strap beards increase any design, guaranteeing impeccable men's grooming.<br><br>my web site - [http://able2know.org/user/gabrielechapman/ Discover More] 227e84feef6beb2e275113867c14e4415800f46f User:VEHGilberto 2 1727 2580 2025-01-22T06:59:30Z VEHGilberto 1955 Created page with "KMS Auto net activator is actually a depended on tool utilized worldwide, featuring in Ukraine, Russia, and Indonesia, for activating Windows and Office software program. With KMSAuto activator, users can conveniently activate their systems, featuring KMSAuto Windows 11 and KMSAuto Windows 10, without the demand for official secrets. KMS Auto download offers simple access to this dependable program, sparing each money and time.<br><br>Here is my blog; [https://www.tumblr..." wikitext text/x-wiki KMS Auto net activator is actually a depended on tool utilized worldwide, featuring in Ukraine, Russia, and Indonesia, for activating Windows and Office software program. With KMSAuto activator, users can conveniently activate their systems, featuring KMSAuto Windows 11 and KMSAuto Windows 10, without the demand for official secrets. KMS Auto download offers simple access to this dependable program, sparing each money and time.<br><br>Here is my blog; [https://www.tumblr.com/catarinalee-sfpc/771173223735934976/how-using-a-super-strong-password-generator?source=share Visit Website] 347bd33702895571b03eac6d24ff54b97df37aed User:MillieCourtois 2 1728 2581 2025-01-23T05:19:55Z MillieCourtois 1957 Created page with "Expert licensed operators deal with the driving, enabling you to unwind or plan for your day in advance. And also, the amenities supplied-- like free of charge refreshments and advanced booking alternatives-- elevate your traveling experience, making it genuinely remarkable.<br><br>Here is my website; [https://ucgp.jujuy.edu.ar/profile/quilladult5/ See Our Website]" wikitext text/x-wiki Expert licensed operators deal with the driving, enabling you to unwind or plan for your day in advance. And also, the amenities supplied-- like free of charge refreshments and advanced booking alternatives-- elevate your traveling experience, making it genuinely remarkable.<br><br>Here is my website; [https://ucgp.jujuy.edu.ar/profile/quilladult5/ See Our Website] 4b5613ecc64c715f24a01448529bc89937a87a08 User:MillieMcIlveen2 2 1729 2582 2025-01-23T05:19:57Z MillieMcIlveen2 1959 Created page with "Professional chauffeurs handle the driving, allowing you to loosen up or plan for your day in advance. And also, the amenities given-- like free drinks and progressed reserving choices-- raise your traveling experience, making it genuinely extraordinary.<br><br>Here is my web blog; [http://www.bioguiden.se/redirect.aspx?url=https://www.xmtransportation.com/ Learn More]" wikitext text/x-wiki Professional chauffeurs handle the driving, allowing you to loosen up or plan for your day in advance. And also, the amenities given-- like free drinks and progressed reserving choices-- raise your traveling experience, making it genuinely extraordinary.<br><br>Here is my web blog; [http://www.bioguiden.se/redirect.aspx?url=https://www.xmtransportation.com/ Learn More] 45bab13b3b5988b00f97300dff7d9f9f7c4686f8 User:Julie56I070 2 1730 2583 2025-01-23T05:50:00Z Julie56I070 1961 Created page with "Specialist chauffeurs deal with the driving, permitting you to loosen up or prepare for your day ahead. Plus, the amenities provided-- like free of charge refreshments and advanced booking choices-- elevate your travel experience, making it truly extraordinary.<br><br>Here is my webpage - [https://setiathome.berkeley.edu/show_user.php?userid=11728716 View Source]" wikitext text/x-wiki Specialist chauffeurs deal with the driving, permitting you to loosen up or prepare for your day ahead. Plus, the amenities provided-- like free of charge refreshments and advanced booking choices-- elevate your travel experience, making it truly extraordinary.<br><br>Here is my webpage - [https://setiathome.berkeley.edu/show_user.php?userid=11728716 View Source] ac337af819352ef10458900accfc014953a20ff7 User:Kayleigh81S 2 1731 2584 2025-01-23T05:57:52Z Kayleigh81S 1962 Created page with "Specialist licensed operators take care of the driving, allowing you [https://gratisafhalen.be/author/clambreak3/ Go To This Web-Site] loosen up or prepare for your day in advance. Plus, the amenities given-- like complimentary refreshments and advanced reserving choices-- boost your traveling experience, making it truly extraordinary." wikitext text/x-wiki Specialist licensed operators take care of the driving, allowing you [https://gratisafhalen.be/author/clambreak3/ Go To This Web-Site] loosen up or prepare for your day in advance. Plus, the amenities given-- like complimentary refreshments and advanced reserving choices-- boost your traveling experience, making it truly extraordinary. b8bf3d279342a8125159c60ffed6a392ce049cac User:RicardoElkington 2 1732 2585 2025-01-23T06:30:53Z RicardoElkington 1963 Created page with "Knowing when to reserve a shuttle service for your San Diego excursion ensures you'll enjoy a soft and easy experience. Whether it is actually an airport transfer, group outing, or [https://wolvesbaneuo.com/wiki/index.php/User:TressaNorthern Learn More] even sightseeing journey, getting reliable group transportation San Diego in advance promises freedom and satisfaction. Through considering your transportation early, especially during peak periods or even for exclusive..." wikitext text/x-wiki Knowing when to reserve a shuttle service for your San Diego excursion ensures you'll enjoy a soft and easy experience. Whether it is actually an airport transfer, group outing, or [https://wolvesbaneuo.com/wiki/index.php/User:TressaNorthern Learn More] even sightseeing journey, getting reliable group transportation San Diego in advance promises freedom and satisfaction. Through considering your transportation early, especially during peak periods or even for exclusive celebrations, you can pay attention to producing remarkable experiences in this attractive metropolitan area. For the best trip convenience, trust a trustworthy service provider using the best shuttle service to San Diego airport and beyond.<br><br>Have a look at my site ... [http://opelforum.lv/user/steppea67/ Learn More] d288b5cb954395f53c6876eaf8f1815ad220b5fc User:JulianLeMessurie 2 1733 2586 2025-01-23T06:31:19Z JulianLeMessurie 1964 Created page with "The Strong Password Generator is actually an effective tool developed to aid users generate powerful passwords along with convenience. This random password generator delivers adjustable options, allowing users to generate distinct and [http://94.72.103.111:8080/index.php/User:NumbersFxr Read From The Link] safe and secure passwords. With this password generator strong in encryption, users can easily generate sturdy passwords to protect their on the internet accounts [ht..." wikitext text/x-wiki The Strong Password Generator is actually an effective tool developed to aid users generate powerful passwords along with convenience. This random password generator delivers adjustable options, allowing users to generate distinct and [http://94.72.103.111:8080/index.php/User:NumbersFxr Read From The Link] safe and secure passwords. With this password generator strong in encryption, users can easily generate sturdy passwords to protect their on the internet accounts [http://fbesport.com/user/legweeder55/ Read From The Link] possible threats. 950d25be36cd8d4d6e3becb676e0aa5deec6842c User:GladisH785665 2 1734 2587 2025-01-23T06:57:01Z GladisH785665 1966 Created page with "Knowing when to schedule a shuttle service for your San Diego vacation ensures you'll appreciate a smooth and easy experience. Whether it is actually an airport transmission, [https://wavedream.wiki/index.php/When_To_Make_A_Reservation_For_A_Shuttle_Service_For_Your_San_Diego_Travel click here] group day trip, or even sightseeing and tour journey, securing trustworthy group transportation San Diego in advance warranties freedom and assurance. Through preparing your tran..." wikitext text/x-wiki Knowing when to schedule a shuttle service for your San Diego vacation ensures you'll appreciate a smooth and easy experience. Whether it is actually an airport transmission, [https://wavedream.wiki/index.php/When_To_Make_A_Reservation_For_A_Shuttle_Service_For_Your_San_Diego_Travel click here] group day trip, or even sightseeing and tour journey, securing trustworthy group transportation San Diego in advance warranties freedom and assurance. Through preparing your transportation early, specifically during the course of peak periods or even for unique events, you can focus on developing memorable experiences in this attractive metropolitan area. For the supreme trip advantage, trust a professional company giving the best shuttle service to San Diego airport and past.<br><br>my web site :: [https://shapshare.com/troweljoseph88 Click Here] 971ece29bf27cb8d82225d6afb541b55b935c6ba User:EliBarrington2 2 1735 2588 2025-01-23T07:12:28Z EliBarrington2 1968 Created page with "Receive simple and reliable activation with the KMSAuto activator, perfect for activating Windows and Office editions in regions like Kyrgyzstan, Egypt, and the Russian Federation. The KMSAuto Windows activator guarantees complete performance without the hassle of purchasing keys. KMS Auto download and KMSAuto net Windows 10 deliver convenience of make use of, sustaining millions of users around the world, delivering authentic activation for all.<br><br>My site - [https:..." wikitext text/x-wiki Receive simple and reliable activation with the KMSAuto activator, perfect for activating Windows and Office editions in regions like Kyrgyzstan, Egypt, and the Russian Federation. The KMSAuto Windows activator guarantees complete performance without the hassle of purchasing keys. KMS Auto download and KMSAuto net Windows 10 deliver convenience of make use of, sustaining millions of users around the world, delivering authentic activation for all.<br><br>My site - [https://www.dermandar.com/user/AldodfRios/ View Our Editors Post] 2fb44595b26259aeee1fb8f3c149fd1a3ae42d2b User:AshleyStrunk 2 1736 2589 2025-01-23T08:39:48Z AshleyStrunk 1969 Created page with "A trusted Strong Password Generator ensures first-class protection through offering an intuitive method to generate strong password blends. This password generator supplies users with a random password generator that produces very secure, one-of-a-kind passwords. Through utilizing this tool, individuals can effectively generate strong password protection for their on the web records and accounts, protecting them from cyber hazards.<br><br>Also visit my web site [https://..." wikitext text/x-wiki A trusted Strong Password Generator ensures first-class protection through offering an intuitive method to generate strong password blends. This password generator supplies users with a random password generator that produces very secure, one-of-a-kind passwords. Through utilizing this tool, individuals can effectively generate strong password protection for their on the web records and accounts, protecting them from cyber hazards.<br><br>Also visit my web site [https://git.fuwafuwa.moe/cellarpeen02 Read More Here] d609c73c8f9329ea7708cdeb18825ff67dd3bdb1 User:EleanoreLund0 2 1737 2590 2025-01-25T05:36:03Z EleanoreLund0 1972 Created page with "Investing in remarkable host isn't nearly storage space; it's concerning producing a solid structure for [http://wiki.myamens.com/index.php/User:SabrinaO05 Get More Info] your on the internet visibility, inevitably resulting in better visitor contentment and increased conversions. By prioritizing these safety and security attributes, you not just protect your content however additionally construct trust with your customers, paving the way for your online success<br><br>..." wikitext text/x-wiki Investing in remarkable host isn't nearly storage space; it's concerning producing a solid structure for [http://wiki.myamens.com/index.php/User:SabrinaO05 Get More Info] your on the internet visibility, inevitably resulting in better visitor contentment and increased conversions. By prioritizing these safety and security attributes, you not just protect your content however additionally construct trust with your customers, paving the way for your online success<br><br>Feel free to visit my web blog: [https://anotepad.com/notes/74j6qqfb Get More Info] f3ef5bee855180d0dfd519c7c660c1514b89b83d User:KGOStacia7842630 2 1738 2591 2025-01-26T11:14:33Z KGOStacia7842630 1974 Created page with "Provident illustrations mirror your dedication to quality and professionalism, boosting reliability with regulatory bodies. Simply put, developing authorization illustrations are not just a procedure; they are essential devices for effective job implementation and conformity.<br><br>Also visit my web page [https://www.startus.cc/company/bygglovstjanst Read My Reviews Here]" wikitext text/x-wiki Provident illustrations mirror your dedication to quality and professionalism, boosting reliability with regulatory bodies. Simply put, developing authorization illustrations are not just a procedure; they are essential devices for effective job implementation and conformity.<br><br>Also visit my web page [https://www.startus.cc/company/bygglovstjanst Read My Reviews Here] e16e7ecc61c3ea608747deca8c814305eece8bb5 User:MerrillStambaugh 2 1739 2592 2025-01-26T11:23:36Z MerrillStambaugh 1975 Created page with "Provident drawings reflect your commitment to quality and expertise, enhancing reliability with governing body systems. Simply put, constructing authorization drawings are not simply a procedure; they are important devices for successful project implementation and conformity.<br><br>Here is my web site: [https://ourdoings.com/unlisted/pd6nqve7/2025-01-20 e828827]" wikitext text/x-wiki Provident drawings reflect your commitment to quality and expertise, enhancing reliability with governing body systems. Simply put, constructing authorization drawings are not simply a procedure; they are important devices for successful project implementation and conformity.<br><br>Here is my web site: [https://ourdoings.com/unlisted/pd6nqve7/2025-01-20 e828827] 33e5342b7b038b22a40b03e066f3a1fbc4daf906 User:OsvaldoBello4 2 1740 2593 2025-01-28T11:22:57Z OsvaldoBello4 1977 Created page with "If you're striving to increase your performance, nooLVL is a great option. This patented element enriches intellectual feature and focus, supplying continual energy for peak sports efficiency. Loaded with sports nutrition benefits, it supplies the needed nourishment for [https://mappinglandtheft.ca/index.php?title=The_Increasing_Demand_For_Sports_Supplements_To_Enhance_Overall_Health_And_Wellness View Our Editors Post] strengthened psychological clearness and physical e..." wikitext text/x-wiki If you're striving to increase your performance, nooLVL is a great option. This patented element enriches intellectual feature and focus, supplying continual energy for peak sports efficiency. Loaded with sports nutrition benefits, it supplies the needed nourishment for [https://mappinglandtheft.ca/index.php?title=The_Increasing_Demand_For_Sports_Supplements_To_Enhance_Overall_Health_And_Wellness View Our Editors Post] strengthened psychological clearness and physical endurance. Choose this sports nourishment supplement for a sharper, a lot more efficient workout session.<br><br>Also visit my website :: [https://devrant.com/users/YaeldfRobbins View Our Editors Post] 6296f05fd4903b008f5acf6802d2472012184433 User:NatalieRudd88 2 1741 2594 2025-01-28T11:35:59Z NatalieRudd88 1979 Created page with "If you are actually seeking to improve your sports nutrition activity, ProHydrolase is the perfect enzyme that enriches protein digestive function and saturation, guaranteeing your body receives maximum dietary benefits. This sports nourishment supplement enhances your post-workout recuperation with strengthened intake of essential nutrients, assisting you achieve your fitness goals quicker and more successfully.<br><br>Also visit my website; [https://unit4factors.weebly..." wikitext text/x-wiki If you are actually seeking to improve your sports nutrition activity, ProHydrolase is the perfect enzyme that enriches protein digestive function and saturation, guaranteeing your body receives maximum dietary benefits. This sports nourishment supplement enhances your post-workout recuperation with strengthened intake of essential nutrients, assisting you achieve your fitness goals quicker and more successfully.<br><br>Also visit my website; [https://unit4factors.weebly.com/home/the-ultimate-guide-to-picking-the-best-sports-nutrition-supplements-for-superior-health Available Here] 6c831611695d8a4cd02aab1257c2e190c354b790 User:CharleneJackman 2 1742 2595 2025-01-28T11:36:06Z CharleneJackman 1978 Created page with "If you are actually wanting to increase your sports nourishment video game, ProHydrolase is actually the best enzyme that improves healthy protein digestive function and intake, ensuring your physical body acquires max nutritional benefits. This sports nourishment supplement improves your post-workout recovery with boosted absorption of necessary nutrients, helping you achieve your fitness targets much faster and a lot [http://list.ly/CassidydfGarrett Get More Info] succ..." wikitext text/x-wiki If you are actually wanting to increase your sports nourishment video game, ProHydrolase is actually the best enzyme that improves healthy protein digestive function and intake, ensuring your physical body acquires max nutritional benefits. This sports nourishment supplement improves your post-workout recovery with boosted absorption of necessary nutrients, helping you achieve your fitness targets much faster and a lot [http://list.ly/CassidydfGarrett Get More Info] successfully. 873c81f6d8b3e7af8cf7e16bc213ca4e7e00676a User:KatieSeptimus1 2 1743 2596 2025-01-28T11:37:30Z KatieSeptimus1 1980 Created page with "If you are actually appearing to improve your sports nourishment game, ProHydrolase is actually the excellent chemical that enriches protein digestion and intake, ensuring your body receives optimum nutritional benefits. This sports nourishment supplement improves your post-workout healing with improved intake of essential nutrients, assisting you accomplish your fitness objectives much faster and [https://wiki.snooze-hotelsoftware.de/index.php?title=Sports_Nutrition_Su..." wikitext text/x-wiki If you are actually appearing to improve your sports nourishment game, ProHydrolase is actually the excellent chemical that enriches protein digestion and intake, ensuring your body receives optimum nutritional benefits. This sports nourishment supplement improves your post-workout healing with improved intake of essential nutrients, assisting you accomplish your fitness objectives much faster and [https://wiki.snooze-hotelsoftware.de/index.php?title=Sports_Nutrition_Supplements_Gain_Popularity_For_Assisting_Total_Physical_Body_Health_And_Wellness See Details] a lot more efficiently.<br><br>my homepage [https://servalien.weebly.com/home/the-science-behind-sports-nutrition-supplements-and-their-favorable-effect See Details] feda251c3c817be8c40dcf7f24bd09a093c2edbd User:RomanBonwick 2 1744 2597 2025-01-29T04:27:21Z RomanBonwick 1982 Created page with "Pest infestation can negatively influence your residential property's worth, particularly if you plan to sell or rent your home. Visible indications of parasites, such as computer mouse droppings or harmed timber, are warnings for prospective purchasers or lessees.<br><br>Review my web page :: [https://www.akonter.com/story/avoid-building-damages/ View Our Editors Post]" wikitext text/x-wiki Pest infestation can negatively influence your residential property's worth, particularly if you plan to sell or rent your home. Visible indications of parasites, such as computer mouse droppings or harmed timber, are warnings for prospective purchasers or lessees.<br><br>Review my web page :: [https://www.akonter.com/story/avoid-building-damages/ View Our Editors Post] 6174c2faa156c7149767bf6084bc9061566a7820 User:Bryce84R557 2 1745 2598 2025-01-29T04:56:31Z Bryce84R557 1983 Created page with "Parasite invasion can adversely impact your building's worth, particularly if you prepare to sell or lease your home. Visible indicators of insects, such as computer mouse droppings or harmed wood, are warnings for potential purchasers or tenants.<br><br>my web blog - [https://www.quora.com/Is-pest-control-a-hard-job/answer/Howard-Meyer-14 Visit Here]" wikitext text/x-wiki Parasite invasion can adversely impact your building's worth, particularly if you prepare to sell or lease your home. Visible indicators of insects, such as computer mouse droppings or harmed wood, are warnings for potential purchasers or tenants.<br><br>my web blog - [https://www.quora.com/Is-pest-control-a-hard-job/answer/Howard-Meyer-14 Visit Here] 9cb5748be3407479b48518c65bb830a69281d644 User:TOLGemma8110208 2 1746 2599 2025-01-29T05:21:25Z TOLGemma8110208 1984 Created page with "Insect infestation can adversely impact your residential or commercial property's value, specifically if you prepare to sell or lease your home. Noticeable signs of bugs, such as mouse droppings or harmed timber, are warnings for prospective customers or renters.<br><br>Here is my web site: [https://www.temptalia.com/members/drewdfflowers Visit This Link]" wikitext text/x-wiki Insect infestation can adversely impact your residential or commercial property's value, specifically if you prepare to sell or lease your home. Noticeable signs of bugs, such as mouse droppings or harmed timber, are warnings for prospective customers or renters.<br><br>Here is my web site: [https://www.temptalia.com/members/drewdfflowers Visit This Link] 585118d4e9184bbb816cf3748513597bc5d2d39a User:CornellQuinonez 2 1747 2600 2025-01-29T05:27:12Z CornellQuinonez 1985 Created page with "Pest invasion can adversely affect your residential property's value, especially if you plan to sell or lease your home. Visible indications of parasites, such as computer mouse droppings or harmed timber, are red flags for prospective purchasers or renters.<br><br>My web site - [https://www.tumblr.com/catarinalee-sfpc/773637605115019264/leading-solutions-for-taking-on-insect-problems-in?source=share Read More Here]" wikitext text/x-wiki Pest invasion can adversely affect your residential property's value, especially if you plan to sell or lease your home. Visible indications of parasites, such as computer mouse droppings or harmed timber, are red flags for prospective purchasers or renters.<br><br>My web site - [https://www.tumblr.com/catarinalee-sfpc/773637605115019264/leading-solutions-for-taking-on-insect-problems-in?source=share Read More Here] 172d314a992cd051dcdf2f12786660070dc833dc User:DannyPya098333 2 1748 2601 2025-01-29T05:38:52Z DannyPya098333 1989 Created page with "The future of addiction rehabilitation in New Jersey is actually definitely vivid. With ongoing developments in treatment approaches, individualized care, technology, and internal cleansing methods, addiction treatment centers NJ are offering expect to people looking for lasting healing. These growths, together with increased loved ones and community support, are actually molding a brand new period of addiction therapy in the condition. Whether it is actually drug rehabs..." wikitext text/x-wiki The future of addiction rehabilitation in New Jersey is actually definitely vivid. With ongoing developments in treatment approaches, individualized care, technology, and internal cleansing methods, addiction treatment centers NJ are offering expect to people looking for lasting healing. These growths, together with increased loved ones and community support, are actually molding a brand new period of addiction therapy in the condition. Whether it is actually drug rehabs New Jersey or even alcohol rehabs in New Jersey, the opportunities for recovery and growth are increasing, supplying brand-new methods for those looking for a life devoid of substance addiction.<br><br>my page: [https://creativedrag.website2.me/blog/discovering-treatment-techniques-at-substance-addiction-rehabilitation-centers-in-nj Visit Here] 269d97ab165c21b0ce5755f8a3c9b93d8ceff7f7 User:Christy22V 2 1749 2602 2025-01-29T05:41:22Z Christy22V 1987 Created page with "Parasite problem can negatively influence your building's value, particularly if you plan to sell or lease your home. Visible signs of pests, such as mouse droppings or damaged wood, are warnings for potential purchasers or occupants.<br><br>my homepage: [https://www.reverbnation.com/artist/geralddaugherty7 This Article]" wikitext text/x-wiki Parasite problem can negatively influence your building's value, particularly if you plan to sell or lease your home. Visible signs of pests, such as mouse droppings or damaged wood, are warnings for potential purchasers or occupants.<br><br>my homepage: [https://www.reverbnation.com/artist/geralddaugherty7 This Article] eb3e508212b484563ddb36ff931840ebbeced5b3 User:KristopherLangan 2 1750 2603 2025-01-29T05:51:54Z KristopherLangan 1990 Created page with "The future of substance addiction rehabilitation in New Jersey is undoubtedly brilliant. Along with ongoing innovations in treatment techniques, individualized care, modern technology, and detoxification techniques, addiction treatment centers NJ are actually providing expect to individuals trying to find lasting healing. These advancements, together with boosted household and community help, are molding a brand-new age of addiction therapy in the condition. Whether it's..." wikitext text/x-wiki The future of substance addiction rehabilitation in New Jersey is undoubtedly brilliant. Along with ongoing innovations in treatment techniques, individualized care, modern technology, and detoxification techniques, addiction treatment centers NJ are actually providing expect to individuals trying to find lasting healing. These advancements, together with boosted household and community help, are molding a brand-new age of addiction therapy in the condition. Whether it's drug rehabs New Jersey or alcohol rehabs in New Jersey, the possibilities for recovery and growth are growing, providing brand new methods for those seeking a life without substance addiction.<br><br>Look into my website [http://www.talkmarkets.com/member/MasenBallard Read My Post Here] 723bbd6e08c25a2eadf4a26ed927f9c73f99c542 User:KoreyScofield73 2 1751 2604 2025-01-29T06:11:54Z KoreyScofield73 1991 Created page with "The future of substance addiction recovery in New Jersey is undeniably intense. With continuous developments in therapy techniques, tailored care, modern technology, and cleansing procedures, addiction treatment centers NJ are providing wish to individuals appearing for lasting rehabilitation. These developments, along with increased family and community support, are actually shaping a new age of addiction treatment in the condition. Whether it's drug rehabs New Jersey o..." wikitext text/x-wiki The future of substance addiction recovery in New Jersey is undeniably intense. With continuous developments in therapy techniques, tailored care, modern technology, and cleansing procedures, addiction treatment centers NJ are providing wish to individuals appearing for lasting rehabilitation. These developments, along with increased family and community support, are actually shaping a new age of addiction treatment in the condition. Whether it's drug rehabs New Jersey or even alcohol rehabs in New Jersey, the opportunities for healing and development are actually extending, using brand-new opportunities for those seeking a life free from substance addiction.<br><br>My web site - [https://www.lomography.com/homes/EthenHale Get Idea About Your Bit] 5cee19c60a3980a581ee97edf5e6687ecdfad135 User:LucilleDial9 2 1752 2605 2025-01-29T08:39:58Z LucilleDial9 1993 Created page with "For [https://roses.shoutwiki.com/wiki/Benutzer:StevePrentice17 Websites] businesses in necessity of bulk exotic snacks, ExoticSnack Hub delivers a wide collection of treats from around the entire world. Situated in Elk Grove Village, Illinois, they are actually counted on exotic snack distributors delivering top-notch exotic snacks wholesale USA. Whether you're filling up or even attempting one thing brand new, ExoticSnack Hub provides premium snacks and treats at irres..." wikitext text/x-wiki For [https://roses.shoutwiki.com/wiki/Benutzer:StevePrentice17 Websites] businesses in necessity of bulk exotic snacks, ExoticSnack Hub delivers a wide collection of treats from around the entire world. Situated in Elk Grove Village, Illinois, they are actually counted on exotic snack distributors delivering top-notch exotic snacks wholesale USA. Whether you're filling up or even attempting one thing brand new, ExoticSnack Hub provides premium snacks and treats at irresistible prices.<br><br>Check out my blog :: [https://snacksadvisor.wordpress.com/ Websites] 7c4febd44fa45f75a028006d4c4c9f9db2d969c8 User:ClemmieDaniels 2 1753 2606 2025-01-29T09:16:19Z ClemmieDaniels 1995 Created page with "Mineral sun block offer an ecological, skin-loving solution for [https://shiapedia.1god.org/index.php/The_Reason_Why_Mineral_Sunscreens_Are_Perfect_For_Environmentally_Oriented_Customers Websites] consumers that care about both their skin wellness and the planet. Along with their organic, safe ingredients, mild formulas, and maintainable packing, these products support both personal wellness and ecological preservation. Deciding on mineral sunscreen SPF 50 is actually a..." wikitext text/x-wiki Mineral sun block offer an ecological, skin-loving solution for [https://shiapedia.1god.org/index.php/The_Reason_Why_Mineral_Sunscreens_Are_Perfect_For_Environmentally_Oriented_Customers Websites] consumers that care about both their skin wellness and the planet. Along with their organic, safe ingredients, mild formulas, and maintainable packing, these products support both personal wellness and ecological preservation. Deciding on mineral sunscreen SPF 50 is actually a small however impactful way to look after your skin layer and support a greener, a lot more sustainable future.<br><br>My web site :: [https://www.cfd-online.com/Forums/members/deminichatfield.html Websites] d8e7222db1bfd81f9975fe76cda4cb18ccb18a3b User:AlisiaNave69 2 1754 2607 2025-01-29T10:15:57Z AlisiaNave69 1997 Created page with "Mineral sunscreens deliver an environmentally friendly, skin-loving solution for customers that appreciate each their skin layer wellness and the world. Along with their all-natural, non-toxic elements, delicate formulas, and maintainable packaging, these items assist both individual wellness and environmental preservation. Choosing mineral sunscreen SPF 50 is actually a little but impactful technique to maintain your skin and support a greener, extra lasting future.<br>..." wikitext text/x-wiki Mineral sunscreens deliver an environmentally friendly, skin-loving solution for customers that appreciate each their skin layer wellness and the world. Along with their all-natural, non-toxic elements, delicate formulas, and maintainable packaging, these items assist both individual wellness and environmental preservation. Choosing mineral sunscreen SPF 50 is actually a little but impactful technique to maintain your skin and support a greener, extra lasting future.<br><br>Feel free to visit my blog post ... [https://lookingforclan.com/user/289718/ Get More Info] ac2b58bed8e8b53f6d7882c396d571c18bd45e6a User:LincolnBarrier 2 1755 2608 2025-01-29T11:24:44Z LincolnBarrier 2000 Created page with "Qimingcasting specializes in produced high quality crusher additional components adapted to specific working needs. Through leveraging their proficiency, you enhance the layout method, making certain that each component is engineered for the greatest effectiveness and durability. Interest to particular in this particular stage could significantly impact the overall functionality and life-span of [https://karmaapps.website2.me/blog/the-reason-why-chinese-makers-control-th..." wikitext text/x-wiki Qimingcasting specializes in produced high quality crusher additional components adapted to specific working needs. Through leveraging their proficiency, you enhance the layout method, making certain that each component is engineered for the greatest effectiveness and durability. Interest to particular in this particular stage could significantly impact the overall functionality and life-span of [https://karmaapps.website2.me/blog/the-reason-why-chinese-makers-control-the-crusher-use-components-market Read From The Link] tools. 2c381d49001f820b82d0dac7dc27110a535724ba User:HopeWynn833514 2 1756 2609 2025-01-29T12:18:48Z HopeWynn833514 2003 Created page with "Hybrid motor vehicles are actually here to remain, and along with their increasing appeal, the need for focused repairs in Escondido, CA, are going to proceed to raise. Whether you need to have hybrid battery repairs, [http://wiki.fikweb.com.br/index.php/User:Brenda67H152 Get More Info] Toyota Prius ABS repairs, or Toyota Prius check engine light repairs, it is actually important to select a seasoned vehicle shop that recognizes the intricacies of hybrid motor vehicle s..." wikitext text/x-wiki Hybrid motor vehicles are actually here to remain, and along with their increasing appeal, the need for focused repairs in Escondido, CA, are going to proceed to raise. Whether you need to have hybrid battery repairs, [http://wiki.fikweb.com.br/index.php/User:Brenda67H152 Get More Info] Toyota Prius ABS repairs, or Toyota Prius check engine light repairs, it is actually important to select a seasoned vehicle shop that recognizes the intricacies of hybrid motor vehicle servicing. At Escondido AutoPros, you may trust our qualified specialists to give the pro care your hybrid vehicle requires to remain on the roadway for many years to come.<br><br>Have a look at my homepage [https://www.tumblr.com/sybilandbranson/773733166581252096/what-to-expect-throughout-a-hybrid-automobile?source=share Get More Info] 5b8f34f5370dcf594837342c9f11affdb8bbefa8 User:ElouiseAnnis1 2 1757 2610 2025-01-29T12:46:07Z ElouiseAnnis1 2006 Created page with "Hybrid automobiles are actually here to remain, and along with their growing recognition, the requirement for specialized repairs in Escondido, CA, [https://www.penexchange.de/pen-wiki/index.php/Benutzer:CandidaYagan9 Get More Info] will definitely carry on to increase. Whether you need hybrid battery repairs, Toyota Prius ABS repairs, or Toyota Prius check engine light repairs, it is important to decide on an expert automobile shop that comprehends the complexities of..." wikitext text/x-wiki Hybrid automobiles are actually here to remain, and along with their growing recognition, the requirement for specialized repairs in Escondido, CA, [https://www.penexchange.de/pen-wiki/index.php/Benutzer:CandidaYagan9 Get More Info] will definitely carry on to increase. Whether you need hybrid battery repairs, Toyota Prius ABS repairs, or Toyota Prius check engine light repairs, it is important to decide on an expert automobile shop that comprehends the complexities of hybrid automobile maintenance. At Escondido AutoPros, you can easily trust our licensed experts to supply the pro care your hybrid car requires to remain on the road for several years to come.<br><br>Feel free to visit my blog post: [https://www.getlisteduae.com/listings/escondido-auto-pros-auto-repair-hybrid-repair Get More Info] 391723c45c0f6ea2fbd14fc897584653fa8d242b User:ViolaRignall19 2 1758 2611 2025-01-29T12:49:50Z ViolaRignall19 2005 Created page with "Hybrid automobiles are actually here to remain, and along with their growing attraction, the requirement for concentrated repairs in Escondido, CA, will remain to improve. Whether you need hybrid battery repairs, Toyota Prius ABS repairs, or even Toyota Prius check engine light repairs, it is important to choose a seasoned vehicle shop that knows the intricacies of hybrid vehicle maintenance. At Escondido AutoPros, you may trust our qualified service technicians to suppl..." wikitext text/x-wiki Hybrid automobiles are actually here to remain, and along with their growing attraction, the requirement for concentrated repairs in Escondido, CA, will remain to improve. Whether you need hybrid battery repairs, Toyota Prius ABS repairs, or even Toyota Prius check engine light repairs, it is important to choose a seasoned vehicle shop that knows the intricacies of hybrid vehicle maintenance. At Escondido AutoPros, you may trust our qualified service technicians to supply the pro care your hybrid automobile requires to remain on the street for years to come.<br><br>Look into my homepage; [https://anotepad.com/note/read/sg4f85a3 Websites] 9d831d40af36b9be826f0368180a013d1dead879 User:AnitraHawes256 2 1759 2612 2025-01-29T12:59:37Z AnitraHawes256 2007 Created page with "Hybrid cars are actually here to keep, and with their expanding attraction, the demand for specialized repairs in Escondido, CA, will remain to enhance. Whether you need hybrid battery repairs, Toyota Prius ABS repairs, or [https://menwiki.men/wiki/The_Growth_Of_Hybrid_Vehicles_And_The_Demand_For_Specialized_Repairs_In_Escondido_CA Check More Details Here] Toyota Prius [https://lennypantoja.dropmark.com/1854516/35698213 Check More Details Here] engine light repairs, it..." wikitext text/x-wiki Hybrid cars are actually here to keep, and with their expanding attraction, the demand for specialized repairs in Escondido, CA, will remain to enhance. Whether you need hybrid battery repairs, Toyota Prius ABS repairs, or [https://menwiki.men/wiki/The_Growth_Of_Hybrid_Vehicles_And_The_Demand_For_Specialized_Repairs_In_Escondido_CA Check More Details Here] Toyota Prius [https://lennypantoja.dropmark.com/1854516/35698213 Check More Details Here] engine light repairs, it is necessary to choose an experienced car shop that understands the ins and outs of hybrid automobile maintenance. At Escondido AutoPros, you can trust our qualified service technicians to supply the expert care your hybrid motor vehicle requires to stay on the street for several years to come. 70f21289b8c728148467b6e57cef56e37c6673b3 User:WOAMoses96443 2 1760 2613 2025-01-29T17:08:05Z WOAMoses96443 2008 Created page with "The future of addiction recovery in New Jersey is unquestionably bright. Along with ongoing technologies in treatment strategies, individualized care, modern technology, and cleansing techniques, addiction treatment centers NJ are providing intend to people looking for lasting recuperation. These advancements, together with improved household and community assistance, are actually molding a brand-new time of addiction treatment in the condition. Whether it's drug rehabs..." wikitext text/x-wiki The future of addiction recovery in New Jersey is unquestionably bright. Along with ongoing technologies in treatment strategies, individualized care, modern technology, and cleansing techniques, addiction treatment centers NJ are providing intend to people looking for lasting recuperation. These advancements, together with improved household and community assistance, are actually molding a brand-new time of addiction treatment in the condition. Whether it's drug rehabs New Jersey or even alcohol rehabs in New Jersey, the opportunities for recuperation and development are expanding, providing new methods for those seeking a life devoid of substance addiction.<br><br>My web-site; [https://www.instagram.com/p/DFWab8JBqOd/ Click Here] 9daa1e80f3ccdabd71a3d72b35b96cf5bc9b1252 User:Ilse67M85300735 2 1761 2614 2025-01-30T09:31:36Z Ilse67M85300735 2011 Created page with "Alarms without permanence offer ultimate versatility for home security in Spain. Without any lasting arrangements, these systems supply trusted surveillance without the devotion of conventional services. Whether you're renting out or even need temporary protection, alarm systems without permanence ensure tranquility of mind along with easy installment, 24/7 assistance, and [https://www.instapaper.com/read/1749047401 Read From The Link] potential to terminate anytime." wikitext text/x-wiki Alarms without permanence offer ultimate versatility for home security in Spain. Without any lasting arrangements, these systems supply trusted surveillance without the devotion of conventional services. Whether you're renting out or even need temporary protection, alarm systems without permanence ensure tranquility of mind along with easy installment, 24/7 assistance, and [https://www.instapaper.com/read/1749047401 Read From The Link] potential to terminate anytime. 51ee41f1b932ef2d624202c2d8330608a6a78dc9 User:JaredJfo31263518 2 1762 2615 2025-01-30T09:35:47Z JaredJfo31263518 2012 Created page with "Alarms without permanence deal ultimate adaptability for home safety in Spain. Without long-lasting arrangements, these systems give dependable safety without the devotion of standard services. Whether you are actually leasing or even need to have temporary coverage, alarms without permanence guarantee confidence along with quick and easy installation, 24/7 help, and the capability to cancel anytime.<br><br>my web page: [http://travellers.minube.net/emmyegomez Learn More]" wikitext text/x-wiki Alarms without permanence deal ultimate adaptability for home safety in Spain. Without long-lasting arrangements, these systems give dependable safety without the devotion of standard services. Whether you are actually leasing or even need to have temporary coverage, alarms without permanence guarantee confidence along with quick and easy installation, 24/7 help, and the capability to cancel anytime.<br><br>my web page: [http://travellers.minube.net/emmyegomez Learn More] cfda5e26226e80077f4027e696d39dc4ff49c8cc User:MillieW010 2 1763 2616 2025-02-03T07:22:25Z MillieW010 2015 Created page with "Safeguard and improve your brand credibility with a counted on online track record organization. From keeping track of assessments to attending to damaging content, these professionals guarantee your digital existence keeps tough and reliable. Strengthen customer trust and protect your brand's image along with professional reputation management services modified to your business demands.<br><br>Here is my web site: [https://www.audiodraft.com/user/profile/fabianemedina A..." wikitext text/x-wiki Safeguard and improve your brand credibility with a counted on online track record organization. From keeping track of assessments to attending to damaging content, these professionals guarantee your digital existence keeps tough and reliable. Strengthen customer trust and protect your brand's image along with professional reputation management services modified to your business demands.<br><br>Here is my web site: [https://www.audiodraft.com/user/profile/fabianemedina Article Source] 74a555083951caca9158846dbc8173a3e284ced8 User:EddyMuller87836 2 1764 2617 2025-02-03T07:45:06Z EddyMuller87836 2017 Created page with "Bicycle accessories enhance your biking experience along with functional and elegant solutions. From bicycle bags to weatherproof covers, our assortment provides longevity and benefit. Designed for daily bikers, these bicycle accessories give convenience and protection on every trip. Improve your bicycle configuration and [https://zeblab.sintef.no/wiki/The_Positive_Effect_Of_Upgrading_Bicycle_Accessories_On_Cycling_Productivity Read My Post Here] take pleasure in smooth..." wikitext text/x-wiki Bicycle accessories enhance your biking experience along with functional and elegant solutions. From bicycle bags to weatherproof covers, our assortment provides longevity and benefit. Designed for daily bikers, these bicycle accessories give convenience and protection on every trip. Improve your bicycle configuration and [https://zeblab.sintef.no/wiki/The_Positive_Effect_Of_Upgrading_Bicycle_Accessories_On_Cycling_Productivity Read My Post Here] take pleasure in smoother, much more reliable cycling with our premium products.<br><br>My page [https://leylalowe.wordpress.com/2025/01/14/por-que-de-compras-calidad-accesorios-de-bicicleta-asuntos/ Read My Post Here] d32f34bf32151e6da607731338c3159480dafa93 User:WilfredBlackett 2 1765 2618 2025-02-03T07:55:20Z WilfredBlackett 2018 Created page with "Safeguard and enhance your brand credibility along with a trusted on-line image agency. From checking evaluations to taking care of adverse content, these professionals guarantee your online visibility keeps powerful and reliable. Boost customer trust and guard your brand's image along with expert credibility monitoring services adapted to your business requirements.<br><br>Also visit my page; [https://cullencrawford.notion.site/Por-Qu-Seleccionar-Adecuado-Agencia-De-Rep..." wikitext text/x-wiki Safeguard and enhance your brand credibility along with a trusted on-line image agency. From checking evaluations to taking care of adverse content, these professionals guarantee your online visibility keeps powerful and reliable. Boost customer trust and guard your brand's image along with expert credibility monitoring services adapted to your business requirements.<br><br>Also visit my page; [https://cullencrawford.notion.site/Por-Qu-Seleccionar-Adecuado-Agencia-De-Reputaci-n-Online-De-Los-Asuntos-De-Su-Negocio-175cda2cf8a680a684c4f8957163438d Article Source] fe207d5e332dd8a5abd424e5ff90a2aeab1b96ef User:LawrenceFairbank 2 1766 2619 2025-02-03T08:00:02Z LawrenceFairbank 2019 Created page with "Bicycle accessories enrich your biking experience with efficient and fashionable solutions. From bicycle bags to weatherproof covers, our array gives sturdiness and benefit. Made for everyday cyclists, these bicycle accessories give convenience and safety and security on every ride. Improve your bicycle system and take pleasure in smoother, a lot more effective biking with our premium items.<br><br>My site; [https://www.akonter.com/story/principales-accesorios-de-bicicle..." wikitext text/x-wiki Bicycle accessories enrich your biking experience with efficient and fashionable solutions. From bicycle bags to weatherproof covers, our array gives sturdiness and benefit. Made for everyday cyclists, these bicycle accessories give convenience and safety and security on every ride. Improve your bicycle system and take pleasure in smoother, a lot more effective biking with our premium items.<br><br>My site; [https://www.akonter.com/story/principales-accesorios-de-bicicleta-cada-ciclista/ Clicking Here] b609a086d89f1687d3b752d7d535196f8bd9f951 User:ArlenFife52993 2 1767 2620 2025-02-03T08:15:22Z ArlenFife52993 2020 Created page with "Bicycle accessories improve your cycling experience along with efficient and trendy solutions. From bicycle bags to weatherproof covers, [https://penzu.com/public/5a683479804a2d88 Check Our Editor Note] variation delivers durability and convenience. Created for everyday bicyclists, these bicycle accessories give comfort and safety and security on every experience. Update your bicycle arrangement and take pleasure in smoother, much more reliable biking with our premium it..." wikitext text/x-wiki Bicycle accessories improve your cycling experience along with efficient and trendy solutions. From bicycle bags to weatherproof covers, [https://penzu.com/public/5a683479804a2d88 Check Our Editor Note] variation delivers durability and convenience. Created for everyday bicyclists, these bicycle accessories give comfort and safety and security on every experience. Update your bicycle arrangement and take pleasure in smoother, much more reliable biking with our premium items. 570cc1bc01f834878edefee4cb0b04baa87997df User:FranciscaMcRae6 2 1768 2621 2025-02-03T10:04:23Z FranciscaMcRae6 2021 Created page with "When expanding your business online, choosing a search engine optimization firm in Norfolk, UK ensures targeted end results. They provide professional search engine optimization approaches modified for the local market, increasing your positions and raising exposure. Along with their assistance, your site will draw in much more all natural website traffic and transform website visitors into loyal consumers. Don't let your competitors outperform you in the Norfolk, UK loc..." wikitext text/x-wiki When expanding your business online, choosing a search engine optimization firm in Norfolk, UK ensures targeted end results. They provide professional search engine optimization approaches modified for the local market, increasing your positions and raising exposure. Along with their assistance, your site will draw in much more all natural website traffic and transform website visitors into loyal consumers. Don't let your competitors outperform you in the Norfolk, UK location - companion along with a counted on SEO company today.<br><br>Review my blog post [https://stack.amcsplatform.com/user/spotgolf04 Check Our Editor Note] f553ddae1bc4b050f867feb62b6bb8bded7f1924 User:ElizbethCraven6 2 1769 2622 2025-02-03T10:19:10Z ElizbethCraven6 2023 Created page with "When broadening your business online, employing a search engine optimization company in Norfolk, UK ensures targeted outcomes. They offer professional search engine optimization techniques customized for the local market, improving your rankings and enhancing exposure. With their support, your website will definitely attract much more all natural traffic and change site visitors right into devoted customers. Don't let your rivals surpass you in the Norfolk, UK place - co..." wikitext text/x-wiki When broadening your business online, employing a search engine optimization company in Norfolk, UK ensures targeted outcomes. They offer professional search engine optimization techniques customized for the local market, improving your rankings and enhancing exposure. With their support, your website will definitely attract much more all natural traffic and change site visitors right into devoted customers. Don't let your rivals surpass you in the Norfolk, UK place - companion along with a counted on SEO firm today.<br><br>Look into my site; [https://farangmart.co.th/author/bloodcactus99/ Click Here] 197622e8c0caa45cdff77257e59348443d4b2889 User:WendyMcLeod230 2 1770 2623 2025-02-03T10:20:31Z WendyMcLeod230 2022 Created page with "When increasing your business online, hiring a SEO agency in Norfolk, UK ensures targeted results. They give skilled search engine optimization approaches tailored for the regional market, increasing your ranks and increasing presence. With their support, your site will attract extra all natural traffic and transform visitors right into devoted clients. Don't let your competitions beat you in the Norfolk, [https://securitytools.wiki/index.php/When_Is_The_Right_Time_To_I..." wikitext text/x-wiki When increasing your business online, hiring a SEO agency in Norfolk, UK ensures targeted results. They give skilled search engine optimization approaches tailored for the regional market, increasing your ranks and increasing presence. With their support, your site will attract extra all natural traffic and transform visitors right into devoted clients. Don't let your competitions beat you in the Norfolk, [https://securitytools.wiki/index.php/When_Is_The_Right_Time_To_Invest_In_SEO_For_Your_Norfolk_Business View Our Editors Post] UK region - partner with a depended on SEO company today.<br><br>Also visit my webpage: [http://csmouse.com/user/badgeform07/ View Our Editors Post] 9f4d95e8d8b988723f68573d05a5a7a372a9f2e4 User:BarbraStrutt44 2 1771 2624 2025-02-03T10:29:24Z BarbraStrutt44 2024 Created page with "When increasing your business online, tapping the services of a search engine optimization firm in Norfolk, UK makes sure targeted end results. They deliver experienced SEO tactics tailored for the local market, boosting your ranks and improving exposure. With their support, [http://swwwwiki.coresv.net/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:KiaraGross27587 Websites] your internet site is going to bring in even more organic website traffic and convert website visito..." wikitext text/x-wiki When increasing your business online, tapping the services of a search engine optimization firm in Norfolk, UK makes sure targeted end results. They deliver experienced SEO tactics tailored for the local market, boosting your ranks and improving exposure. With their support, [http://swwwwiki.coresv.net/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:KiaraGross27587 Websites] your internet site is going to bring in even more organic website traffic and convert website visitors right into faithful customers. Don't let your rivals outshine you in the Norfolk, UK region - partner along with a trusted SEO company today.<br><br>Feel free to surf to my webpage :: [http://autoexotic.lv/user/basecanada91/ View Our Editors Post] 9f761bf49dc76c37cf7767a4b251a78daea53ec5 User:JaimieCantu08 2 1772 2625 2025-02-04T07:04:38Z JaimieCantu08 2030 Created page with "Each successful communication, regardless of just how small, strengthens [https://www.keepandshare.com/doc11/36611/hvorfor-ikke-individer-erfaring-sociale-ngstelighed-checke-ud-de-psykiske-elementer Get Idea About Your Bit] skills and minimizes compulsive ideas that can threaten your confidence. Practice active hearing and engage in conversations, concentrating on the other person rather than your anxiousness. You may also consider signing up with social teams or clubs t..." wikitext text/x-wiki Each successful communication, regardless of just how small, strengthens [https://www.keepandshare.com/doc11/36611/hvorfor-ikke-individer-erfaring-sociale-ngstelighed-checke-ud-de-psykiske-elementer Get Idea About Your Bit] skills and minimizes compulsive ideas that can threaten your confidence. Practice active hearing and engage in conversations, concentrating on the other person rather than your anxiousness. You may also consider signing up with social teams or clubs that line up with your rate of interests, [https://pipewiki.org/wiki/index.php/User:KarinaCorfield0 Get More Info] which provide an encouraging setting to practice. 8891b2f5780d892f168213b722dcac5eab87b62c User:EtsukoBuddicom 2 1773 2626 2025-02-04T07:09:11Z EtsukoBuddicom 2031 Created page with "Choosing the ideal products from the most effective skin care brands, you make sure that your skin continues to be flawless and radiant everyday. A well-maintained skincare regular boosts your natural beauty and creates you confident in your skin.<br><br>Feel free to visit my page: [https://sk.tags.world/kosice/index.php?page=user&action=pub_profile&id=1674813 Click Here]" wikitext text/x-wiki Choosing the ideal products from the most effective skin care brands, you make sure that your skin continues to be flawless and radiant everyday. A well-maintained skincare regular boosts your natural beauty and creates you confident in your skin.<br><br>Feel free to visit my page: [https://sk.tags.world/kosice/index.php?page=user&action=pub_profile&id=1674813 Click Here] 0df93ffe36f7e0f34e010a067678014c242d11af User:WinstonJenyns 2 1774 2627 2025-02-04T07:09:34Z WinstonJenyns 2029 Created page with "Securing admission is simply the beginning of the journey. Trainees also require to get ready for holiday accommodation, traveling, and cultural adjustments in a new country. The Best United States Study Abroad Consultant provides pre-departure positioning sessions, dealing with necessary topics such as adapting [http://demo2-ecomm.in.ua/user/harborhead13/ Go To This Web-Site] a new culture, managing funds, and handling emergencies." wikitext text/x-wiki Securing admission is simply the beginning of the journey. Trainees also require to get ready for holiday accommodation, traveling, and cultural adjustments in a new country. The Best United States Study Abroad Consultant provides pre-departure positioning sessions, dealing with necessary topics such as adapting [http://demo2-ecomm.in.ua/user/harborhead13/ Go To This Web-Site] a new culture, managing funds, and handling emergencies. 7c14794f7f5f6d87b62c437f649a0ce6a3a0f0e8 User:ClintonMullin88 2 1775 2628 2025-02-04T07:32:51Z ClintonMullin88 2032 Created page with "All successful communication, regardless of just how minor, enhances your abilities and [https://wiki.woge.or.at//index.php?title=Detailed_Overview_To_Handling_Social_Stress_And_Anxiety_In_Social_And_Professional_Setups find out more] reduces obsessive ideas that can threaten your confidence. Exercise active hearing and engage in conversations, concentrating on the various other individual as opposed to your anxiety. You may additionally think about signing up with soci..." wikitext text/x-wiki All successful communication, regardless of just how minor, enhances your abilities and [https://wiki.woge.or.at//index.php?title=Detailed_Overview_To_Handling_Social_Stress_And_Anxiety_In_Social_And_Professional_Setups find out more] reduces obsessive ideas that can threaten your confidence. Exercise active hearing and engage in conversations, concentrating on the various other individual as opposed to your anxiety. You may additionally think about signing up with social teams or clubs that straighten with your interests, which supply an encouraging atmosphere to exercise.<br><br>Also visit my web page: [https://gettr.com/post/p3h0bfm5538 Find Out More] d73ebc2c09848f2078cd00aaeaff05e48b2f0597 User:HollyJackman 2 1776 2629 2025-02-04T07:50:28Z HollyJackman 2034 Created page with "For each one successful communication, no matter exactly how minor, reinforces your skills and minimizes compulsive ideas that can weaken your self-confidence. Practice energetic music playing and talk, focusing on the other person rather than your stress and anxiety. You may also consider signing up with social groups or clubs that line up with your rate of interests, which provide a helpful atmosphere to exercise.<br><br>Feel free to surf to my blog post [https://papal..." wikitext text/x-wiki For each one successful communication, no matter exactly how minor, reinforces your skills and minimizes compulsive ideas that can weaken your self-confidence. Practice energetic music playing and talk, focusing on the other person rather than your stress and anxiety. You may also consider signing up with social groups or clubs that line up with your rate of interests, which provide a helpful atmosphere to exercise.<br><br>Feel free to surf to my blog post [https://papaly.com/categories/share?id=c70f38e852c346f1b1f3e29af767d395 This Article] f01d9609865ec33cc83ea3078d3b6e24355cc634 User:HarrisColon 2 1777 2630 2025-02-04T07:52:15Z HarrisColon 2033 Created page with "For each one successful communication, regardless of exactly how minor, enhances your skills and reduces obsessive thoughts that can weaken your self-confidence. Exercise energetic music playing and engage in conversations, concentrating on the various other person rather than your anxiety. You could also consider signing up with social groups or clubs that line up with your rate of interests, which give a supportive environment to exercise.<br><br>My webpage [https://te..." wikitext text/x-wiki For each one successful communication, regardless of exactly how minor, enhances your skills and reduces obsessive thoughts that can weaken your self-confidence. Exercise energetic music playing and engage in conversations, concentrating on the various other person rather than your anxiety. You could also consider signing up with social groups or clubs that line up with your rate of interests, which give a supportive environment to exercise.<br><br>My webpage [https://telegra.ph/Identificere-Set-Off-og-Udfordrende-F%C3%B8lelser-02-04 Check More Details Here] 00eb61c102629681bfc919215d7a6da7c7e45169 User:AllanFfo574 2 1778 2631 2025-02-04T08:18:35Z AllanFfo574 2035 Created page with "Safeguarding admission is just the beginning of the journey. Students also require to get ready for lodging, traveling, and social modifications in a new nation. The Best US Study Abroad Consultant supplies pre-departure positioning sessions, dealing with essential topics such as adjusting to a brand-new culture, [https://wiki.rolandradio.net/index.php?title=Factors_You_Required_A_Research_Abroad_Professional_For_A_Hassle-Free_Request_Refine get more info] managing fina..." wikitext text/x-wiki Safeguarding admission is just the beginning of the journey. Students also require to get ready for lodging, traveling, and social modifications in a new nation. The Best US Study Abroad Consultant supplies pre-departure positioning sessions, dealing with essential topics such as adjusting to a brand-new culture, [https://wiki.rolandradio.net/index.php?title=Factors_You_Required_A_Research_Abroad_Professional_For_A_Hassle-Free_Request_Refine get more info] managing finances, and handling emergency situations.<br><br>My site - [http://autopage.lv/user/suncandle28/ Check Our Editor Note] 7726ddbd59bc2447a8cb860e3261c8bb517a26e0 User:CarloPfeiffer 2 1779 2632 2025-02-04T08:39:31Z CarloPfeiffer 2037 Created page with "A personal trainer for nutrition is essential for achieving lasting fitness and health outcomes. Whether you are actually looking to lose weight or enhance total welfare, a personal nutrition trainer India or personal nutrition trainer Singapore supplies customized coaching to fulfill your one-of-a-kind needs. Along with pro weight reduction & fitness coaching, clients may embrace far healthier eating habits and an extra active lifestyle, attaining their finest physical..." wikitext text/x-wiki A personal trainer for nutrition is essential for achieving lasting fitness and health outcomes. Whether you are actually looking to lose weight or enhance total welfare, a personal nutrition trainer India or personal nutrition trainer Singapore supplies customized coaching to fulfill your one-of-a-kind needs. Along with pro weight reduction & fitness coaching, clients may embrace far healthier eating habits and an extra active lifestyle, attaining their finest physical health and wellness. Get guidance on exercise regimens, suitable nutrition, and general health for ideal outcomes.<br><br>Take a look at my website [https://intensedebate.com/people/carpvoice7 Find More About This] 5e262cfd5b9f57185be71e816c5bd2b771366d3a User:George87R58 2 1780 2633 2025-02-04T09:13:10Z George87R58 2038 Created page with "Protecting admission is simply the start of the journey. Pupils likewise require to prepare for lodging, traveling, and social changes in a new nation. The Best US Study Abroad Consultant offers pre-departure positioning sessions, covering important subjects such as adjusting to a new society, taking care of financial resources, and managing emergency situations.<br><br>Also visit my web page :: [http://autoboss.lv/user/bumperbulb78/ Read More Here]" wikitext text/x-wiki Protecting admission is simply the start of the journey. Pupils likewise require to prepare for lodging, traveling, and social changes in a new nation. The Best US Study Abroad Consultant offers pre-departure positioning sessions, covering important subjects such as adjusting to a new society, taking care of financial resources, and managing emergency situations.<br><br>Also visit my web page :: [http://autoboss.lv/user/bumperbulb78/ Read More Here] 68c5a133b4a0c85e92d7c074e4cc9fda5fed974d User:ScarlettDoris6 2 1781 2634 2025-02-04T09:39:15Z ScarlettDoris6 2039 Created page with "All successful interaction, no matter exactly how minor, strengthens your abilities and lowers obsessive ideas that can weaken your self-confidence. Exercise energetic music playing and talk, focusing on the various other individual instead of your anxiety. You could likewise take into consideration signing up with social groups or clubs that align with your interests, which provide an encouraging atmosphere to practice.<br><br>Feel free to surf to my web page - [https:/..." wikitext text/x-wiki All successful interaction, no matter exactly how minor, strengthens your abilities and lowers obsessive ideas that can weaken your self-confidence. Exercise energetic music playing and talk, focusing on the various other individual instead of your anxiety. You could likewise take into consideration signing up with social groups or clubs that align with your interests, which provide an encouraging atmosphere to practice.<br><br>Feel free to surf to my web page - [https://www.akonter.com/story/skelne-set-off-og-hacking-ideer/ Read More Here] 4546e01eff3c510d0f32dd63def183b6eaa26f54 User:NamN221336 2 1782 2635 2025-02-04T10:12:59Z NamN221336 2041 Created page with "Choosing the right products from the most effective skincare brands, you ensure that your skin remains perfect and radiant on a daily basis. A properly maintained skincare regular enhances your all-natural appeal and makes you confident in your skin.<br><br>my page :: [http://psicolinguistica.letras.ufmg.br/wiki/index.php/Hop-Over-To-These-Guys-w Visit Website]" wikitext text/x-wiki Choosing the right products from the most effective skincare brands, you ensure that your skin remains perfect and radiant on a daily basis. A properly maintained skincare regular enhances your all-natural appeal and makes you confident in your skin.<br><br>my page :: [http://psicolinguistica.letras.ufmg.br/wiki/index.php/Hop-Over-To-These-Guys-w Visit Website] 566da240458469c53dca06194fecb457bf0f7d3f User:IrvingB25729 2 1783 2636 2025-02-05T06:16:27Z IrvingB25729 2044 Created page with "In the kitchen area roman shades are available in sensational fabric blends that withstand stains while enhancing your style. These innovative alternatives guarantee you don't have to jeopardize on style or usefulness.<br><br>My web-site: [https://www.exoltech.us/blogs/257739/Precisely-How-to-Select-the-Excellent-Curtains-and-Tones-for This Article]" wikitext text/x-wiki In the kitchen area roman shades are available in sensational fabric blends that withstand stains while enhancing your style. These innovative alternatives guarantee you don't have to jeopardize on style or usefulness.<br><br>My web-site: [https://www.exoltech.us/blogs/257739/Precisely-How-to-Select-the-Excellent-Curtains-and-Tones-for This Article] c2cc7b2dfa14fbca42d1300389237f124544cd62 User:Numbers79K 2 1784 2637 2025-02-05T06:20:07Z Numbers79K 2045 Created page with "In the kitchen area roman shades are available in magnificent textile blends that stand up to discolorations while improving your style. These cutting-edge choices assure you don't have to compromise on design or functionality.<br><br>Here is my web blog - [https://vnseo.edu.vn/members/veindream23.241162.html Check Our Top Pick]" wikitext text/x-wiki In the kitchen area roman shades are available in magnificent textile blends that stand up to discolorations while improving your style. These cutting-edge choices assure you don't have to compromise on design or functionality.<br><br>Here is my web blog - [https://vnseo.edu.vn/members/veindream23.241162.html Check Our Top Pick] 97f942cd7d0e3603f62fed9b3d2dbc7066a02140 User:AnnieCortez1212 2 1785 2638 2025-02-05T06:23:07Z AnnieCortez1212 2046 Created page with "Discovering lots on bedding sets online is everything about being actually clever and doing your research. By understanding exactly what you need [https://www.akonter.com/story/find-your-perfect-bedding-set-online/ Go To This Web-Site] have, keeping an eye on sales and discounts, reviewing rates, and prioritizing quality and customer feedback, you can rack up impressive offers on everything from a coastal duvet cover to an economy size duvet cover or perhaps an extravaga..." wikitext text/x-wiki Discovering lots on bedding sets online is everything about being actually clever and doing your research. By understanding exactly what you need [https://www.akonter.com/story/find-your-perfect-bedding-set-online/ Go To This Web-Site] have, keeping an eye on sales and discounts, reviewing rates, and prioritizing quality and customer feedback, you can rack up impressive offers on everything from a coastal duvet cover to an economy size duvet cover or perhaps an extravagant silk pillowcase. Whether you like floral bed sheets for a pleasant atmosphere or even a textured duvet cover for included sophistication, the excellent bedding set is merely a handful of clicks on away. 96e354bb2a6aa5c8acbcbbfca0571950babb84da User:RamonaAnsell967 2 1786 2639 2025-02-05T06:30:50Z RamonaAnsell967 2047 Created page with "In the cooking area roman shades are offered in stunning material blends that stand up to spots while enhancing your style. These innovative options guarantee you don't need to compromise on design or practicality.<br><br>Feel free to surf to my blog ... [https://livepositively.com/how-to-choose-the-excellent-window-curtains-and-shades-for-every-room-in-your-house/ Additional Resources]" wikitext text/x-wiki In the cooking area roman shades are offered in stunning material blends that stand up to spots while enhancing your style. These innovative options guarantee you don't need to compromise on design or practicality.<br><br>Feel free to surf to my blog ... [https://livepositively.com/how-to-choose-the-excellent-window-curtains-and-shades-for-every-room-in-your-house/ Additional Resources] 2eb7dcfe198de9f96ef3133613ddefc88c25be96 User:FidelKaawirn3 2 1787 2640 2025-02-05T06:39:03Z FidelKaawirn3 2048 Created page with "In the kitchen area roman tones are available in magnificent fabric blends that withstand spots while boosting your decor. These kinds of cutting-edge options ensure you do not need to compromise on style or usefulness.<br><br>My blog post; [https://git.fuwafuwa.moe/maplesilk22 Investigate This Site]" wikitext text/x-wiki In the kitchen area roman tones are available in magnificent fabric blends that withstand spots while boosting your decor. These kinds of cutting-edge options ensure you do not need to compromise on style or usefulness.<br><br>My blog post; [https://git.fuwafuwa.moe/maplesilk22 Investigate This Site] d546828e20ca9a8d3c4be8f12a1368d16dda29c0 User:Rick179025 2 1788 2641 2025-02-05T07:13:02Z Rick179025 2051 Created page with "Locating terrific deals on bedding sets online is actually everything about being actually intelligent and doing your research. Through recognizing specifically what you need, watching on sales and discount rates, contrasting prices, and focusing on quality and consumer reviews, you can rack up incredible deals on whatever from a coastal duvet cover to an economy size duvet cover and even a lavish silk pillowcase. Whether you favor floral bed sheets for a comfy atmospher..." wikitext text/x-wiki Locating terrific deals on bedding sets online is actually everything about being actually intelligent and doing your research. Through recognizing specifically what you need, watching on sales and discount rates, contrasting prices, and focusing on quality and consumer reviews, you can rack up incredible deals on whatever from a coastal duvet cover to an economy size duvet cover and even a lavish silk pillowcase. Whether you favor floral bed sheets for a comfy atmosphere or even a textured duvet cover for added beauty, the perfect bedding set is actually only a couple of clicks away.<br><br>Check out my homepage :: [https://setiathome.berkeley.edu/show_user.php?userid=11776754 Know More] 5b707166628dbe093d0f0912f28b0ddef880492a User:LindaOqx03 2 1789 2642 2025-02-05T07:34:00Z LindaOqx03 2052 Created page with "By malfunctioning barriers, affordable CAD programs encourage you to utilize the collective brilliant of your group. As you welcome these kinds of devices, you'll notice an increase in productivity and creative thinking, placing your local business to flourish in today's competitive landscape. Let collaboration drive your development trip.<br><br>Also visit my website: [https://todayspecialblog.blogspot.com/2025/02/ultimate-overview-to-finding-reputable.html Click Here]" wikitext text/x-wiki By malfunctioning barriers, affordable CAD programs encourage you to utilize the collective brilliant of your group. As you welcome these kinds of devices, you'll notice an increase in productivity and creative thinking, placing your local business to flourish in today's competitive landscape. Let collaboration drive your development trip.<br><br>Also visit my website: [https://todayspecialblog.blogspot.com/2025/02/ultimate-overview-to-finding-reputable.html Click Here] 3b6708505c861440fed01b4156e8863e69b82dd0 User:DarcyGarvan809 2 1790 2643 2025-02-05T08:00:13Z DarcyGarvan809 2053 Created page with "Through breaking down barriers, inexpensive CAD courses empower you to generate the cumulative genius of your team. As you accept these kinds of tools, you'll observe a rise in efficiency and creative thinking, positioning your small company [https://gamesgumball.blogspot.com/2025/01/just-how-inexpensive-cad-software.html Go To This Web-Site] thrive in today's competitive landscape. Let partnership drive your development journey." wikitext text/x-wiki Through breaking down barriers, inexpensive CAD courses empower you to generate the cumulative genius of your team. As you accept these kinds of tools, you'll observe a rise in efficiency and creative thinking, positioning your small company [https://gamesgumball.blogspot.com/2025/01/just-how-inexpensive-cad-software.html Go To This Web-Site] thrive in today's competitive landscape. Let partnership drive your development journey. d72f5710b3652c40683a3654833f263880cacd0d User:XJBDillon7702 2 1791 2644 2025-02-05T08:24:36Z XJBDillon7702 2055 Created page with "By means of malfunctioning obstacles, inexpensive CAD courses encourage you to harness the cumulative wizard of your team. As you embrace these kinds of devices, you'll discover a boost in efficiency and imagination, positioning your small company to flourish in today's competitive landscape. Allow partnership drive your technology trip.<br><br>my web blog; [https://photoclub.canadiangeographic.ca/profile/21503874 Visit This Link]" wikitext text/x-wiki By means of malfunctioning obstacles, inexpensive CAD courses encourage you to harness the cumulative wizard of your team. As you embrace these kinds of devices, you'll discover a boost in efficiency and imagination, positioning your small company to flourish in today's competitive landscape. Allow partnership drive your technology trip.<br><br>my web blog; [https://photoclub.canadiangeographic.ca/profile/21503874 Visit This Link] d7817c3a986ad4bc8e00c8ef50b4cdc292a98f4c Installation Guide 0 8 2645 2299 2025-02-05T16:46:46Z Stenoob 2057 Updated Hyperlinks for Windows and Mac. wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. === [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. #* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info). # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to use Plover on Linux. <!--T:12--> {{Warning|text=Plover is not officially supported on systems running Wayland (such as Ubuntu and Fedora by default). See the wiki page on [https://plover.wiki/index.php/Wayland Wayland] for workarounds and other alternatives to Plover.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> === Allow Access to Serial Ports ===<!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).''' === Error relating to xcb ===<!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up your writer == <!--T:27--> <!--T:28--> See: [[Setting up your writer with Plover]] == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> 9c3ea0cadcafcd8371ea956073cfca76129d94bb User:JoanneHoddle138 2 1792 2646 2025-02-08T02:05:56Z JoanneHoddle138 2065 Created page with "I'm Carmen Vaughan. Office supervising is what she does and she might not change it out anytime sooner. Iowa is where we've been living for long period. To keep fish just what I do every nights. He's not godd at design but locate want to check his website: https://www.pressadvantage.com/story/65778-axis-real-estate-announces-comprehensive-property-management-and-advisory-services-in-phoenix-az<br><br>Stop by my web-site [https://www.pressadvantage.com/story/65778-axis-re..." wikitext text/x-wiki I'm Carmen Vaughan. Office supervising is what she does and she might not change it out anytime sooner. Iowa is where we've been living for long period. To keep fish just what I do every nights. He's not godd at design but locate want to check his website: https://www.pressadvantage.com/story/65778-axis-real-estate-announces-comprehensive-property-management-and-advisory-services-in-phoenix-az<br><br>Stop by my web-site [https://www.pressadvantage.com/story/65778-axis-real-estate-announces-comprehensive-property-management-and-advisory-services-in-phoenix-az visit the following webpage] f2ba7be809390783b9be87631ce5d322546ae45a User:EugenioNicolai 2 1793 2647 2025-02-08T06:29:58Z EugenioNicolai 2067 Created page with "Airlines like Ryanair, EasyJet, and TUI are actually updating traveler comfort along with airline amenity kits that consist of green, cutting-edge items. Relied on airline vendors provide inflights items for companies such as Finnair, Swiss Airlines, and Air France, making certain a memorable, maintainable flight experience. [https://cullencrawford.notion.site/Leading-Five-Bespoke-Inflight-Items-to-Boost-Your-Airline-Company-s-Brand-190cda2cf8a680dc9b32e064ceba0c48?pvs=7..." wikitext text/x-wiki Airlines like Ryanair, EasyJet, and TUI are actually updating traveler comfort along with airline amenity kits that consist of green, cutting-edge items. Relied on airline vendors provide inflights items for companies such as Finnair, Swiss Airlines, and Air France, making certain a memorable, maintainable flight experience. [https://cullencrawford.notion.site/Leading-Five-Bespoke-Inflight-Items-to-Boost-Your-Airline-Company-s-Brand-190cda2cf8a680dc9b32e064ceba0c48?pvs=73 Read From The Link] airline amenity kits to bespoke inflight products, [http://wiki.rumpold.li/index.php?title=Sustainability_Satisfies_Luxury:_The_Growth_Of_Bespoke_Inflight_Items Read From The Link] modification is key for complete satisfaction throughout London, UK, and beyond. 161fc4ed85cd4a2a7cebab88740f6a42c2eac223 User:ErickBolduc973 2 1794 2648 2025-02-08T06:55:08Z ErickBolduc973 2068 Created page with "Airline companies like Ryanair, EasyJet, and TUI are updating traveler convenience with airline amenity kits that include green, impressive products. Depended on airline vendors offer inflights products for service providers including Finnair, Swiss Airlines, and Air France, making certain an unforgettable, sustainable flight experience. [https://biodigitalbusiness.wordpress.com/2025/02/08/how-bespoke-inflight-items-can-improvement-your-airlines-reliability/ Read From Th..." wikitext text/x-wiki Airline companies like Ryanair, EasyJet, and TUI are updating traveler convenience with airline amenity kits that include green, impressive products. Depended on airline vendors offer inflights products for service providers including Finnair, Swiss Airlines, and Air France, making certain an unforgettable, sustainable flight experience. [https://biodigitalbusiness.wordpress.com/2025/02/08/how-bespoke-inflight-items-can-improvement-your-airlines-reliability/ Read From The Link] airline amenity kits to bespoke inflight products, customization is actually key for contentment across London, UK, and beyond. 39d703c13ab97a1f8496ef2fed2043ef9433262f User:KatherineJarrell 2 1795 2649 2025-02-08T08:53:50Z KatherineJarrell 2074 Created page with "Using an electric powered bike like the Hitway electric bikes gives the ultimate benefit and power. Whether you require a commuter electric bike for daily make use of or even long range e bikes for weekend break adventures, these bikes provide convenience and dependability. From folding ebikes for effortless storage space to 48v e bike battery for lengthy experiences, the possibilities are actually countless.<br><br>my web-site: [https://carmelobowen.dropmark.com/1863140..." wikitext text/x-wiki Using an electric powered bike like the Hitway electric bikes gives the ultimate benefit and power. Whether you require a commuter electric bike for daily make use of or even long range e bikes for weekend break adventures, these bikes provide convenience and dependability. From folding ebikes for effortless storage space to 48v e bike battery for lengthy experiences, the possibilities are actually countless.<br><br>my web-site: [https://carmelobowen.dropmark.com/1863140 Learn More] 3fb1fc96b7f2e15474c84b8ff928bbd9f5576aba User:RoyBraxton3825 2 1796 2650 2025-02-08T08:56:49Z RoyBraxton3825 2073 Created page with "Using an electric bike like the Hitway electric bikes gives the best benefit and power. Whether you need a commuter electric bike for daily usage or even long range e bikes for weekend experiences, these bikes supply convenience and reliability. From folding ebikes for very easy storage to 48v e bike battery for extensive rides, the probabilities are actually never-ending.<br><br>Look into my page: [https://mrbuckscience.weebly.com/home/the-reason-that-acquiring-an-elect..." wikitext text/x-wiki Using an electric bike like the Hitway electric bikes gives the best benefit and power. Whether you need a commuter electric bike for daily usage or even long range e bikes for weekend experiences, these bikes supply convenience and reliability. From folding ebikes for very easy storage to 48v e bike battery for extensive rides, the probabilities are actually never-ending.<br><br>Look into my page: [https://mrbuckscience.weebly.com/home/the-reason-that-acquiring-an-electric-bicycle-online-is-a-great-selection Discover More] 836c079d8477c881ac1be1ba614816cbdc45415a User:SherriSanger65 2 1797 2651 2025-02-08T09:02:24Z SherriSanger65 2076 Created page with "Riding an electric bike like the Hitway electric bikes supplies the utmost convenience and power. Whether you need a commuter electric bike for daily make use of or even long range e bikes for weekend journeys, these bikes give comfort and [https://thevesti.com/wiki/index.php/User:KobyQuezada9 Click This Link] integrity. From folding ebikes for quick and easy storage space to 48v e bike battery for lengthy adventures, the options are actually endless.<br><br>my blog [ht..." wikitext text/x-wiki Riding an electric bike like the Hitway electric bikes supplies the utmost convenience and power. Whether you need a commuter electric bike for daily make use of or even long range e bikes for weekend journeys, these bikes give comfort and [https://thevesti.com/wiki/index.php/User:KobyQuezada9 Click This Link] integrity. From folding ebikes for quick and easy storage space to 48v e bike battery for lengthy adventures, the options are actually endless.<br><br>my blog [https://mrbuckscience.weebly.com/home/the-reason-that-acquiring-an-electric-bicycle-online-is-a-great-selection Click This Link] 1f37fd1cc02e80773e4ea50b22207fa259c1e540 User:Liam67583612029 2 1798 2652 2025-02-08T10:39:31Z Liam67583612029 2077 Created page with "Using an electric powered bike like the Hitway electric bikes offers the greatest comfort and power. Whether you need to have a commuter electric bike for day-to-day usage or even long range e bikes for weekend experiences, [https://www.penexchange.de/pen-wiki/index.php/Benutzer:MilagroRidgley9 Check More Details Here] these bikes deliver convenience and stability. From folding ebikes for simple storing to 48v e bike battery for extended experiences, the options are act..." wikitext text/x-wiki Using an electric powered bike like the Hitway electric bikes offers the greatest comfort and power. Whether you need to have a commuter electric bike for day-to-day usage or even long range e bikes for weekend experiences, [https://www.penexchange.de/pen-wiki/index.php/Benutzer:MilagroRidgley9 Check More Details Here] these bikes deliver convenience and stability. From folding ebikes for simple storing to 48v e bike battery for extended experiences, the options are actually limitless.<br><br>Feel free to surf to my blog :: [https://www.diigo.com/item/note/794jr/tj3k?k=99c6ddf893442c1a8dd70aca9569ca05 Read My Reviews Here] ae4a35d9855af15ee6641421b5534b629851ebeb User:Kayleigh5567 2 1799 2653 2025-02-09T07:04:44Z Kayleigh5567 2086 Created page with "Among the most considerable benefits of cooking at home is the capability to control every component that enters into your dishes. When you prepare food yourself, you know precisely what you're eating-- no surprise ingredients, preservatives, or extreme amounts of salt and sugar. You can choose organic ingredients, fresh fruit and vegetables, and lean healthy proteins, all of which contribute to a much healthier diet regimen. On the other hand, takeout often contains har..." wikitext text/x-wiki Among the most considerable benefits of cooking at home is the capability to control every component that enters into your dishes. When you prepare food yourself, you know precisely what you're eating-- no surprise ingredients, preservatives, or extreme amounts of salt and sugar. You can choose organic ingredients, fresh fruit and vegetables, and lean healthy proteins, all of which contribute to a much healthier diet regimen. On the other hand, takeout often contains harmful fats, extreme sodium, and artificial flavorings that can threaten your health objectives. Cooking in your home likewise allows you to accommodate any type of nutritional restrictions, making it simpler to follow a healthy eating strategy.<br><br>my webpage: [https://globalrecipe.mystrikingly.com/blog/tandoori-paneer-pizza-on-naan-a-fusion-delight Check More Details Here] 28af8e035d5ea428fa99de851e80bb7f699e3647 User:FranCordell476 2 1800 2654 2025-02-09T14:15:55Z FranCordell476 2083 Created page with "Hello and welcome. I am Sammie although i never really liked that name. Mississippi is where he's always lived and his family loves it. Procuring is how he makes money. He is really fond of home brewing and he is trying to get it a path. Go to my website to read through more: https://www.Camu.biz/<br><br>Visit my web-site :: [https://www.Camu.biz/ Benefits Of including a Living Trust in your estate Planning]" wikitext text/x-wiki Hello and welcome. I am Sammie although i never really liked that name. Mississippi is where he's always lived and his family loves it. Procuring is how he makes money. He is really fond of home brewing and he is trying to get it a path. Go to my website to read through more: https://www.Camu.biz/<br><br>Visit my web-site :: [https://www.Camu.biz/ Benefits Of including a Living Trust in your estate Planning] 420d7e3bba00f9afb2a3659fcfa0a243327797e9 User:FinlayDudgeon 2 1801 2655 2025-02-09T16:43:05Z FinlayDudgeon 2095 Created page with "Velma will be the I'm called and I think it sounds quite good have got say it's. In my professional life I'm a dentist on the other hand plan on changing who's. He is really fond of home brewing and he is trying capital a discipline. For years he's been residing New York. Check out the actual news on the website: https://www.camu.biz<br><br>Also visit my website :: [https://www.camu.biz 401K IRA ROLLOVER]" wikitext text/x-wiki Velma will be the I'm called and I think it sounds quite good have got say it's. In my professional life I'm a dentist on the other hand plan on changing who's. He is really fond of home brewing and he is trying capital a discipline. For years he's been residing New York. Check out the actual news on the website: https://www.camu.biz<br><br>Also visit my website :: [https://www.camu.biz 401K IRA ROLLOVER] 85b59bd917cb32d3bbd246523f6104d00f511271 User:BenitoStroup96 2 1802 2656 2025-02-10T05:54:16Z BenitoStroup96 2104 Created page with "Regularly update software program and supply training sessions to help everyone really feel comfortable with the technology. By dealing with these technological issues iteratively, you'll create a smoother modification and a much [http://travellers.minube.net/adrienneelarson Check More Details Here] interesting virtual workplace experience for your group." wikitext text/x-wiki Regularly update software program and supply training sessions to help everyone really feel comfortable with the technology. By dealing with these technological issues iteratively, you'll create a smoother modification and a much [http://travellers.minube.net/adrienneelarson Check More Details Here] interesting virtual workplace experience for your group. fb04aa4e31d3e22e7dd35a5268751a56bc91a521 User:JoshuaVillareal 2 1803 2657 2025-02-10T06:07:27Z JoshuaVillareal 2105 Created page with "Consistently update software program and supply training sessions to aid everybody feel comfy with the technology. By resolving these technical issues iteratively, you'll develop a smoother modification and a much more interesting virtual office experience for [http://www.allnumis.com/user/profile/amareebest Get Idea About Your Bit] group." wikitext text/x-wiki Consistently update software program and supply training sessions to aid everybody feel comfy with the technology. By resolving these technical issues iteratively, you'll develop a smoother modification and a much more interesting virtual office experience for [http://www.allnumis.com/user/profile/amareebest Get Idea About Your Bit] group. 692a872fec4c5272031f01f856f026a7d45e23b0 User:Brett47F621934 2 1804 2658 2025-02-10T06:12:17Z Brett47F621934 2106 Created page with "Consistently update software and give training sessions to help everyone feel comfortable with the modern technology. By addressing these technological issues iteratively, you'll create a smoother change and a much more interesting online workplace experience for your group.<br><br>Here is my web site - [https://x.com/EddieRa57234579/status/1888626947955290354 View Our Editors Post]" wikitext text/x-wiki Consistently update software and give training sessions to help everyone feel comfortable with the modern technology. By addressing these technological issues iteratively, you'll create a smoother change and a much more interesting online workplace experience for your group.<br><br>Here is my web site - [https://x.com/EddieRa57234579/status/1888626947955290354 View Our Editors Post] 7bd3c0806bad11bf011132ab20c6fa065551e63a User:WilliamsKnowlton 2 1805 2659 2025-02-10T06:25:09Z WilliamsKnowlton 2107 Created page with "Frequently update software application and give training sessions [https://www.youcamapps.com/profile/282082852218020191 Go To This Web-Site] aid everyone feel comfy with the technology. By attending to these technological worries iteratively, you'll develop a smoother modification and a more interesting digital office experience for your group." wikitext text/x-wiki Frequently update software application and give training sessions [https://www.youcamapps.com/profile/282082852218020191 Go To This Web-Site] aid everyone feel comfy with the technology. By attending to these technological worries iteratively, you'll develop a smoother modification and a more interesting digital office experience for your group. 401de5b456753e4a0f68d251e07a071e02e99f00 User:ErvinSeder4 2 1806 2660 2025-02-10T06:32:48Z ErvinSeder4 2108 Created page with "On a regular basis update software and supply training sessions to help everyone feel comfortable with the technology. By dealing with these technological concerns iteratively, you'll produce a smoother adjustment and a [https://mrbuckscience.weebly.com/home/shocking-rewards-of-gamification-in-virtual-workplaces-you-really-did-not-recognize Learn More] interesting virtual workplace experience for your team." wikitext text/x-wiki On a regular basis update software and supply training sessions to help everyone feel comfortable with the technology. By dealing with these technological concerns iteratively, you'll produce a smoother adjustment and a [https://mrbuckscience.weebly.com/home/shocking-rewards-of-gamification-in-virtual-workplaces-you-really-did-not-recognize Learn More] interesting virtual workplace experience for your team. aaf755a046b3ee7d4ebae742fbae5e4ddd487aad User:LynnSverjensky5 2 1807 2661 2025-02-10T08:54:41Z LynnSverjensky5 2112 Created page with "On a regular basis evaluate your AI metrics and comments to recognize trends and areas for renovation. This iterative procedure not just fosters technology however likewise boosts your AI services, creating them [https://www.tumblr.com/darkette/774639353365479424/reasons-why-free-ai-devices-are-crucial-for?source=share Find More About This] straightened with your goals. Keep trying out up until you discover the best equilibrium." wikitext text/x-wiki On a regular basis evaluate your AI metrics and comments to recognize trends and areas for renovation. This iterative procedure not just fosters technology however likewise boosts your AI services, creating them [https://www.tumblr.com/darkette/774639353365479424/reasons-why-free-ai-devices-are-crucial-for?source=share Find More About This] straightened with your goals. Keep trying out up until you discover the best equilibrium. fe04f507a899587daf619f4687b58202b10167fe User:JuniorSain68 2 1808 2662 2025-02-10T08:54:59Z JuniorSain68 2113 Created page with "Frequently examine your AI metrics and responses to determine trends and locations for enhancement. This repetitive process not only cultivates development but also improves your AI options, making them more straightened with your goals. Maintain trying out until you discover the ideal equilibrium.<br><br>Visit my blog: [https://www.pinterest.com/pin/1019572803143517089 Check Our Editor Note]" wikitext text/x-wiki Frequently examine your AI metrics and responses to determine trends and locations for enhancement. This repetitive process not only cultivates development but also improves your AI options, making them more straightened with your goals. Maintain trying out until you discover the ideal equilibrium.<br><br>Visit my blog: [https://www.pinterest.com/pin/1019572803143517089 Check Our Editor Note] 439f437f9ac58ecb32b714cd8ce1e2243e991763 User:DenisApple 2 1809 2663 2025-02-10T09:02:50Z DenisApple 2110 Created page with "Regularly evaluate your AI metrics and feedback to recognize trends and locations for enhancement. This repetitive procedure not just promotes innovation yet likewise boosts your AI services, creating them more straightened with your goals. Keep trying out till you find the best balance.<br><br>Also visit my webpage - [http://www.jigsawplanet.com/CeryMills View Source]" wikitext text/x-wiki Regularly evaluate your AI metrics and feedback to recognize trends and locations for enhancement. This repetitive procedure not just promotes innovation yet likewise boosts your AI services, creating them more straightened with your goals. Keep trying out till you find the best balance.<br><br>Also visit my webpage - [http://www.jigsawplanet.com/CeryMills View Source] baf75ba728add14317fdfcaa753be5e88741ce30 User:JeffryA850833605 2 1810 2664 2025-02-10T09:09:56Z JeffryA850833605 2114 Created page with "Frequently assess your AI metrics and feedback to identify trends and locations for enhancement. [https://cfgfactory.com/user/307331 Read This Post Here] iterative process not just cultivates technology yet also boosts your AI options, creating them a lot more aligned with your goals. Maintain exploring until you find the ideal equilibrium." wikitext text/x-wiki Frequently assess your AI metrics and feedback to identify trends and locations for enhancement. [https://cfgfactory.com/user/307331 Read This Post Here] iterative process not just cultivates technology yet also boosts your AI options, creating them a lot more aligned with your goals. Maintain exploring until you find the ideal equilibrium. 07ebc295a2997a07aeccffa912b986ceb9ffccac User:LaverneEddington 2 1811 2665 2025-02-10T12:59:23Z LaverneEddington 2118 Created page with "When looking into alternatives for alternative health and wellness, telemedicine providers offer tailored care with online healthcare services. Get access to cutting-edge therapies like hrt for weight-loss or even [https://wakelet.com/wake/V7CgkCwTDvAW2jyeO92um Check Our Editor Note] out the perks of online hormone therapy for hormone balance. Whether looking for psychological wellness support with ketamine therapy for depression or health coaching, virtual care has actu..." wikitext text/x-wiki When looking into alternatives for alternative health and wellness, telemedicine providers offer tailored care with online healthcare services. Get access to cutting-edge therapies like hrt for weight-loss or even [https://wakelet.com/wake/V7CgkCwTDvAW2jyeO92um Check Our Editor Note] out the perks of online hormone therapy for hormone balance. Whether looking for psychological wellness support with ketamine therapy for depression or health coaching, virtual care has actually changed well-being. Schedule your virtual doctor consultation to receive skilled tips remotely. Attain optimum health and wellness along with virtual health coaching and plunge into a quest of makeover. 80310f3c6d94d4b17561c371c227366000a823e2 User:EstelaBown966 2 1812 2666 2025-02-10T13:20:02Z EstelaBown966 2120 Created page with "When looking into options for comprehensive health and wellness, telemedicine providers deliver personalized care by means of online healthcare services. Get access to cutting-edge procedures like hrt for weight loss or explore the perks of online hormone therapy for hormonal balance. Whether looking for mental wellness assistance along with ketamine therapy for depression or wellness training, [http://convergence-eq.com/index.php/The_Future_Of_Medical_Care:_Exactly_How..." wikitext text/x-wiki When looking into options for comprehensive health and wellness, telemedicine providers deliver personalized care by means of online healthcare services. Get access to cutting-edge procedures like hrt for weight loss or explore the perks of online hormone therapy for hormonal balance. Whether looking for mental wellness assistance along with ketamine therapy for depression or wellness training, [http://convergence-eq.com/index.php/The_Future_Of_Medical_Care:_Exactly_How_Online_Clinical_Services_Are_Transforming_Lifestyles Available Here] digital care has transformed well-being. Schedule your virtual doctor consultation to receive expert tips from another location. Obtain superior health and wellness with virtual health coaching and embark on a trip of change.<br><br>Here is my web-site ... [https://www.tumblr.com/financefatloss/775086470463700992/hassle-free-access-with-online-healthcare-services?source=share Available Here] 41307a8e41ca14d30659c7e4037faf980a71598c User:RenaArmitage489 2 1813 2667 2025-02-10T13:23:39Z RenaArmitage489 2122 Created page with "Whether your child is actually having a problem with a specific topic or even just needs a lot more concentrated attention to conduct well on their secondary school entryway examinations, coaching in Prague can easily make all the variation. With personalized trainings, [http://archmageriseswiki.com/index.php/User:FletcherC53 Going Here] expert advice, and flexible learning options like on the internet tutoring, your kid will certainly be far better ready, even more sel..." wikitext text/x-wiki Whether your child is actually having a problem with a specific topic or even just needs a lot more concentrated attention to conduct well on their secondary school entryway examinations, coaching in Prague can easily make all the variation. With personalized trainings, [http://archmageriseswiki.com/index.php/User:FletcherC53 Going Here] expert advice, and flexible learning options like on the internet tutoring, your kid will certainly be far better ready, even more self-assured, and prepared to encounter their tests along with excellence. Purchasing tutoring is an investment in your little one's scholarly future, providing the tools, capabilities, and help needed to excel both in assessments and in their total academic adventure.<br><br>Feel free to visit my blog post - [https://movieo.me/users/jayleenefoster-jpyxzv Going Here] 4d51e9b825aade321b85df4432c500bc2e968049 User:ClaudioGodwin 2 1814 2668 2025-02-10T13:28:05Z ClaudioGodwin 2119 Created page with "When looking into alternatives for holistic wellness, telemedicine providers deliver tailored care through online healthcare services. [http://www.askmap.net/location/7256653/united-state/telemedical-services Get Idea About Your Bit] access to cutting-edge therapies like hrt for weight management or discover the benefits of online hormone therapy for hormonal balance. Whether looking for psychological wellness assistance along with ketamine therapy for depression or even..." wikitext text/x-wiki When looking into alternatives for holistic wellness, telemedicine providers deliver tailored care through online healthcare services. [http://www.askmap.net/location/7256653/united-state/telemedical-services Get Idea About Your Bit] access to cutting-edge therapies like hrt for weight management or discover the benefits of online hormone therapy for hormonal balance. Whether looking for psychological wellness assistance along with ketamine therapy for depression or even health training, virtual care has actually reinvented wellness. Plan your virtual doctor consultation to obtain experienced insight remotely. Accomplish optimal wellness along with virtual health coaching and plunge into a journey of transformation. 3a05b83d4fe0ec700bc36d7e9c3dd031af139070 User:Aisha52084765564 2 1815 2669 2025-02-10T13:45:21Z Aisha52084765564 2123 Created page with "Routine gas boiler assessments can assist you follow security laws, giving assurance. Simply put, consistent central heating boiler upkeep and inspections are necessary for a dependable heater and a comfy living atmosphere through the winter season.<br><br>Here is my website [http://www.mohawkradio.com/band_profile.php?bandid=158350 Know More]" wikitext text/x-wiki Routine gas boiler assessments can assist you follow security laws, giving assurance. Simply put, consistent central heating boiler upkeep and inspections are necessary for a dependable heater and a comfy living atmosphere through the winter season.<br><br>Here is my website [http://www.mohawkradio.com/band_profile.php?bandid=158350 Know More] 5cdca808978e941ff9e48ca6ef617810441969f6 User:CarissaCenteno0 2 1816 2670 2025-02-10T13:51:42Z CarissaCenteno0 2124 Created page with "Whether your kid is actually fighting with a specific target or even simply needs to have much [https://www.tracksandfields.com/profile/view/brockepatel Get More Info] focused interest to execute effectively on their senior high school entry assessments, tutoring in Prague can easily make all the variation. Along with personalized trainings, professional guidance, and flexible knowing choices like online tutoring, your youngster will certainly be actually better ready, a..." wikitext text/x-wiki Whether your kid is actually fighting with a specific target or even simply needs to have much [https://www.tracksandfields.com/profile/view/brockepatel Get More Info] focused interest to execute effectively on their senior high school entry assessments, tutoring in Prague can easily make all the variation. Along with personalized trainings, professional guidance, and flexible knowing choices like online tutoring, your youngster will certainly be actually better ready, a lot more certain, and all set to encounter their tests with excellence. Acquiring tutoring is actually an investment in your kid's scholastic future, offering the tools, skill-sets, and [https://systemcheck-wiki.de/index.php?title=How_Tutoring_In_Prague_May_Aid_Your_Youngster_Excel_In_Their_Senior_High_School_Assessments get more info] support needed to excel both in assessments and in their general informative quest. f6688580b75d7a5ecb70d2e3deeb40488aea44f0 User:ZakWilmot547112 2 1817 2671 2025-02-10T13:55:14Z ZakWilmot547112 2125 Created page with "Whether your child is actually having problem with a certain topic or even simply needs to have extra concentrated attention to carry out well on their senior high school entryway assessments, tutoring in Prague can easily create all the variation. With individualized courses, pro direction, and [http://archmageriseswiki.com/index.php/User:Bonny02O8831429 Read More From Here] adaptable learning alternatives like on-line tutoring, your kid will be better well prepared, a..." wikitext text/x-wiki Whether your child is actually having problem with a certain topic or even simply needs to have extra concentrated attention to carry out well on their senior high school entryway assessments, tutoring in Prague can easily create all the variation. With individualized courses, pro direction, and [http://archmageriseswiki.com/index.php/User:Bonny02O8831429 Read More From Here] adaptable learning alternatives like on-line tutoring, your kid will be better well prepared, a lot [https://www.storeboard.com/brooklynnewestvicenteerusso Learn More Here] positive, and ready to face their tests along with success. Investing in tutoring is actually an investment in your little one's academic future, giving the tools, skill-sets, and assistance needed to succeed both in examinations and in their total educational experience. 8942ec504da0c3a486ca543778731cb4d40c5736 User:Shawna9530 2 1818 2672 2025-02-10T14:14:24Z Shawna9530 2126 Created page with "Routine gas boiler examinations can help you follow security regulations, giving comfort. Basically, constant boiler maintenance and inspections are essential for a reliable heater and a comfortable living atmosphere throughout the cold weather.<br><br>Feel free to surf to my web blog :: [https://www.diigo.com/item/note/794kg/6c40?k=86a7d2a014ff2ef163c9e4326aad55d6 Find Out More]" wikitext text/x-wiki Routine gas boiler examinations can help you follow security regulations, giving comfort. Basically, constant boiler maintenance and inspections are essential for a reliable heater and a comfortable living atmosphere throughout the cold weather.<br><br>Feel free to surf to my web blog :: [https://www.diigo.com/item/note/794kg/6c40?k=86a7d2a014ff2ef163c9e4326aad55d6 Find Out More] 0a7fca89204dd62bfddbff2eac3e8e65959d4cd7 User:Lillian66N 2 1819 2673 2025-02-10T14:37:30Z Lillian66N 2127 Created page with "Routine gas boiler evaluations can aid you adhere to safety guidelines, giving peace of mind. Basically, regular central heating boiler upkeep and assessments are essential for a reputable heating unit and a comfortable living atmosphere throughout the winter months.<br><br>Take a look at my web site: [https://anotepad.com/notes/wnjwix9n Read This Post Here]" wikitext text/x-wiki Routine gas boiler evaluations can aid you adhere to safety guidelines, giving peace of mind. Basically, regular central heating boiler upkeep and assessments are essential for a reputable heating unit and a comfortable living atmosphere throughout the winter months.<br><br>Take a look at my web site: [https://anotepad.com/notes/wnjwix9n Read This Post Here] 7fcea1118d35d916df959d88d9c39ff3144fc9fb Installation Guide 0 8 2674 2645 2025-02-11T06:36:57Z Mkrnr 2028 Update plover download links wikitext text/x-wiki <languages /> <translate> == Install Plover on Windows == <!--T:1--> <!--T:2--> Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended. === [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc5/plover-4.0.0rc5-win64.setup.exe Download the Windows installer here] === <!--T:3--> Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span> === [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc5/plover-4.0.0rc5-win64.zip Download the Windows portable ZIP here] === <!--T:4--> Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span> == Install Plover on Mac == <span id="download-plover-for-mac-here"></span> === [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc5/plover-4.0.0rc5-macosx_10_13_x86_64.dmg Download Plover for Mac here] === <!--T:5--> # Open the <code>.dmg</code> file. # In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder. # Open the Applications folder. # Control-click on Plover, then choose <code>Open</code> from the shortcut menu. #* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info). # Open <code>System Settings &gt; Privacy & Security &gt; Accessibility</code>. # Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>. <!--T:6--> Plover is set up! You can run Plover like you would any other application. <!--T:8--> {{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover. </blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}} ==== If you had previously uninstalled Plover or upgraded your system ==== <!--T:9--> Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span> == Install Plover on Linux == <!--T:10--> <!--T:11--> Plover is provided as an AppImage. This is the only officially supported method to use Plover on Linux. <!--T:12--> {{Warning|text=Plover is not officially supported on systems running Wayland (such as Ubuntu and Fedora by default). See the wiki page on [https://plover.wiki/index.php/Wayland Wayland] for workarounds and other alternatives to Plover.}} <!--T:13--> <span id="download-the-plover-appimage-here"></span> === [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc5/plover-4.0.0rc5-x86_64.AppImage Download the Plover AppImage here] === <!--T:14--> To use it: <!--T:15--> # Download it # [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable] # Launch it like a standard executable<span id="allow-access-to-serial-ports"></span> === Allow Access to Serial Ports ===<!--T:16--> All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges. <!--T:17--> To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command: <!--T:18--> <pre>stat -c &quot;%G&quot; /dev/ttyACM*</pre> You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable. <!--T:19--> Once you know the correct group, add your user to it by running the following command: <!--T:20--> <pre>sudo usermod -aG &lt;group&gt; $USER</pre> Replace <code>&lt;group&gt;</code> with the output of the previous command. <!--T:21--> '''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).''' === Error relating to xcb ===<!--T:22--> You may run into the following error when trying to run Plover: <!--T:23--> <blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code> </blockquote> Ensure that the following packages are installed: <!--T:24--> * <code>libxcb</code> * <code>xcb-util</code> * <code>qt5-qtstyleplugins</code> * <code>libxcb-cursor0</code> <!--T:25--> Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following: <!--T:26--> <pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre> <span id="setting-up-my-machine"></span> == Setting up your writer == <!--T:27--> <!--T:28--> See: [[Setting up your writer with Plover]] == Other installation methods == <span id="other-releases"></span> === Other releases === <!--T:29--> You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system. [[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]] === Homebrew Cask === <!--T:30--> <!--T:31--> If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span> === Arch AUR package === <!--T:32--> Two AUR packages are provided: <!--T:33--> # [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release # and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code> <!--T:34--> Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span> === Gentoo git ebuild === <!--T:35--> Currently, only a git ebuild for the <code>master</code> branch is provided. <!--T:36--> [https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span> == Void Linux package == <!--T:37--> Plover is packaged in the Void Linux repositories under the package name <code>plover</code>. <!--T:38--> Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span> == Troubleshooting == <!--T:39--> If you get stuck, you can: <!--T:40--> * Check the [[Troubleshooting Issues|troubleshooting guide.]] * Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.] * If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.] <!--T:41--> We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span> == For developers: running from source == <!--T:42--> If you want to build from source (e.g. if you are a developer), follow the guide for your operating system: <!--T:43--> * [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>] * [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>] * [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>] <!--T:44--> [[Category:Plover]] </translate> 5e468f8721ecbb1e3bda3f8b6f4aed62b746d32a User:EulaAnaya83 2 1820 2675 2025-02-11T07:17:15Z EulaAnaya83 2132 Created page with "Visiting depression treatment centers in New Jersey provides a caring, structured environment developed to sustain people battling depression. Along with evidence-based therapies and comprehensive care, inpatient mental health facilities NJ provide tailored therapy plans. These facilities offer a quiet environment to ensure rehabilitation, guaranteeing customers receive the greatest feasible look after psychological health and [https://higgledy-piggledy.xyz/index.php/Us..." wikitext text/x-wiki Visiting depression treatment centers in New Jersey provides a caring, structured environment developed to sustain people battling depression. Along with evidence-based therapies and comprehensive care, inpatient mental health facilities NJ provide tailored therapy plans. These facilities offer a quiet environment to ensure rehabilitation, guaranteeing customers receive the greatest feasible look after psychological health and [https://higgledy-piggledy.xyz/index.php/User:JeanCrespo4262 Article Source] wellness difficulties, including New Jersey anxiety treatment centers.<br><br>Visit my web-site [https://uconnect.ae/post/803788_going-to-clinical-depression-treatment-centers-in-nj-visiting-depression-treatme.html Visit This Link] 0e566a5d0d19b6bbe392a6b1640b082bb63695a9 User:JaclynArmijo650 2 1821 2676 2025-02-11T08:03:37Z JaclynArmijo650 2134 Created page with "If you are actually into meme coins, MemeTools produces trading on Raydium and Pumpfun simpler. Utilize the Bundler and Volume Bot to automate and optimize purchases. Experience swift, dependable token launches along with help for Pumpfun Bundler, and [https://thebitcoinproject.club/wiki/index.php/The_Reason_Why_Every_Meme_Coin_Developer_Should_Be_Actually_Utilizing_MemeTools_In_2025 click here] maximize your earnings using DogWifTools. Deal with approximately twenty wa..." wikitext text/x-wiki If you are actually into meme coins, MemeTools produces trading on Raydium and Pumpfun simpler. Utilize the Bundler and Volume Bot to automate and optimize purchases. Experience swift, dependable token launches along with help for Pumpfun Bundler, and [https://thebitcoinproject.club/wiki/index.php/The_Reason_Why_Every_Meme_Coin_Developer_Should_Be_Actually_Utilizing_MemeTools_In_2025 click here] maximize your earnings using DogWifTools. Deal with approximately twenty wallets and boost your token with MemeTools' sophisticated tactics.<br><br>Have a look at my webpage: [https://intern.ee.aeust.edu.tw/home.php?mod=space&uid=1767932 Click Here] b456344c51348b243e1b001e3631969beca1b43d User:GayleOldham5 2 1822 2677 2025-02-11T09:21:52Z GayleOldham5 2138 Created page with "Leveraging the know-how of neighborhood IT business and accepting cloud modern technologies, companies in Prague can reveal brand-new performances and drive growth, strengthening the essential duty that IT sustain plays in their electronic journeys.<br><br>Look at my page :: [http://promodj.com/MakailadfSoto See Our Website]" wikitext text/x-wiki Leveraging the know-how of neighborhood IT business and accepting cloud modern technologies, companies in Prague can reveal brand-new performances and drive growth, strengthening the essential duty that IT sustain plays in their electronic journeys.<br><br>Look at my page :: [http://promodj.com/MakailadfSoto See Our Website] cc50179c7dbfe4746607dcab61d699b8c3ac1a24 User:ChastityRohu 2 1823 2678 2025-02-11T09:36:51Z ChastityRohu 2135 Created page with "MemeTools is the best platform for meme coin developers and traders. Launch and manage your meme-based cryptocurrency with simplicity making use of tools like Pumpfun Bundler, Raydium Bundler, and Moonshot. Strengthen deal velocity, handle wallets, and automate operations properly. Incorporate flawlessly along with Solana, Pumpfun, and Raydium for boosted trading experiences and prompt completion.<br><br>Review my web site - [https://share.evernote.com/note/0c033a01-6607..." wikitext text/x-wiki MemeTools is the best platform for meme coin developers and traders. Launch and manage your meme-based cryptocurrency with simplicity making use of tools like Pumpfun Bundler, Raydium Bundler, and Moonshot. Strengthen deal velocity, handle wallets, and automate operations properly. Incorporate flawlessly along with Solana, Pumpfun, and Raydium for boosted trading experiences and prompt completion.<br><br>Review my web site - [https://share.evernote.com/note/0c033a01-6607-613e-5c5e-0846ad9c4fa1 Read More From Here] d63d04e36b59470150a8268aacabc557387d88b9 User:CoyTheus04 2 1824 2679 2025-02-11T09:41:13Z CoyTheus04 2137 Created page with "Utilize the proficiency of regional IT firms and accepting cloud technologies, services in Prague can expose brand-new effectiveness and drive development, strengthening the vital function that IT support plays in their digital journeys.<br><br>Have a look at my web page: [https://movieo.me/users/lamontdftapia-jpzcyz Visit Website]" wikitext text/x-wiki Utilize the proficiency of regional IT firms and accepting cloud technologies, services in Prague can expose brand-new effectiveness and drive development, strengthening the vital function that IT support plays in their digital journeys.<br><br>Have a look at my web page: [https://movieo.me/users/lamontdftapia-jpzcyz Visit Website] 2202b9be38383044c996b22393755c7d172d3090 User:MiaGrammer99043 2 1825 2680 2025-02-11T09:46:20Z MiaGrammer99043 2136 Created page with "If you enjoy meme coins, MemeTools helps make trading on Raydium and Pumpfun less complicated. Utilize the Bundler and Volume Bot to automate and maximize deals. Experience quick, dependable token launches along with support for Pumpfun Bundler, and optimize your incomes making use of DogWifTools. Handle approximately 20 wallets and increase your token along with MemeTools' enhanced techniques.<br><br>My web site ... [https://thecmedia.weebly.com/home/how-memetools-is-em..." wikitext text/x-wiki If you enjoy meme coins, MemeTools helps make trading on Raydium and Pumpfun less complicated. Utilize the Bundler and Volume Bot to automate and maximize deals. Experience quick, dependable token launches along with support for Pumpfun Bundler, and optimize your incomes making use of DogWifTools. Handle approximately 20 wallets and increase your token along with MemeTools' enhanced techniques.<br><br>My web site ... [https://thecmedia.weebly.com/home/how-memetools-is-empowering-the-meme-coin-trading-community Find Out More] c58e56d95100a1c55ae3d6cd9c3e430c3c62c6db User:AmbroseBlock768 2 1826 2681 2025-02-11T10:33:07Z AmbroseBlock768 2144 Created page with "Take advantage of the competence of local IT companies and accepting cloud innovations, companies in Prague can expose brand-new performances and drive growth, reinforcing the vital duty that IT sustain plays in their electronic trips.<br><br>my website - [https://x.com/GilbertsMc/status/1889011397914402895 Get Idea About Your Bit]" wikitext text/x-wiki Take advantage of the competence of local IT companies and accepting cloud innovations, companies in Prague can expose brand-new performances and drive growth, reinforcing the vital duty that IT sustain plays in their electronic trips.<br><br>my website - [https://x.com/GilbertsMc/status/1889011397914402895 Get Idea About Your Bit] 855c1ec7d1b4f25a13ba028f4d67715549bf4b89 User:JewellHolbrook5 2 1827 2682 2025-02-11T10:42:07Z JewellHolbrook5 2143 Created page with "Going to depression treatment centers in New Jersey provides a tenderhearted, [https://thevesti.com/wiki/index.php/User:MaynardGarsia75 Discover More Here] structured environment made to sustain individuals battling clinical depression. Along with evidence-based therapies and alternative care, inpatient mental health facilities NJ deliver modified treatment plans. These facilities use a peaceful setup to ensure healing, making certain customers receive the most effectiv..." wikitext text/x-wiki Going to depression treatment centers in New Jersey provides a tenderhearted, [https://thevesti.com/wiki/index.php/User:MaynardGarsia75 Discover More Here] structured environment made to sustain individuals battling clinical depression. Along with evidence-based therapies and alternative care, inpatient mental health facilities NJ deliver modified treatment plans. These facilities use a peaceful setup to ensure healing, making certain customers receive the most effective achievable take care of mental wellness problems, featuring New Jersey anxiety treatment centers.<br><br>My web page [https://www.dermandar.com/user/leonardeharrell/ Discover More Here] 255c32d583d52a301f2803cd9bbbc4464acd1924 User:HanneloreSturgis 2 1828 2683 2025-02-11T11:00:57Z HanneloreSturgis 2145 Created page with "Going to depression treatment centers in New Jersey supplies a thoughtful, organized atmosphere designed to sustain people battling clinical depression. With evidence-based treatments and all natural care, inpatient mental health facilities NJ supply customized treatment plans. These facilities deliver a quiet setup to advertise healing, making sure customers get [https://flipboard.com/@jewellpeterson/anxiety-treatment-centers-in-nj-j6rmbdrsy Read From The Link] very bes..." wikitext text/x-wiki Going to depression treatment centers in New Jersey supplies a thoughtful, organized atmosphere designed to sustain people battling clinical depression. With evidence-based treatments and all natural care, inpatient mental health facilities NJ supply customized treatment plans. These facilities deliver a quiet setup to advertise healing, making sure customers get [https://flipboard.com/@jewellpeterson/anxiety-treatment-centers-in-nj-j6rmbdrsy Read From The Link] very best feasible care for psychological health difficulties, including New Jersey anxiety treatment centers. 53a0ea23cddbb40abfbaf3d330e1a89c43603c32 User:JOHReagan41 2 1829 2684 2025-02-11T16:35:14Z JOHReagan41 2148 Created page with "Think about comparing panels throughout various suppliers to determine any discrepancies in quality. Inevitably, a complete evaluation of item quality and accreditations will certainly help you make educated decisions, guaranteeing that your investment in solar innovation is sound.<br><br>Feel free to visit my blog post: [https://telegra.ph/Zugang-auf-Top-Qualit%C3%A4t-Produkte-02-11 View Our Editors Post]" wikitext text/x-wiki Think about comparing panels throughout various suppliers to determine any discrepancies in quality. Inevitably, a complete evaluation of item quality and accreditations will certainly help you make educated decisions, guaranteeing that your investment in solar innovation is sound.<br><br>Feel free to visit my blog post: [https://telegra.ph/Zugang-auf-Top-Qualit%C3%A4t-Produkte-02-11 View Our Editors Post] 8bd42ef684f89d0e95c8a7f911bc6bdcbe6d0dcb User:ChristyGould 2 1830 2685 2025-02-11T17:20:39Z ChristyGould 2149 Created page with "As you browse, these types of targeted discounts not only boost your purchasing experience yet additionally motivate commitment. By leveraging your browsing history and acquisition trends, companies are developing a [https://anotepad.com/notes/r5ee45cw Learn More] engaging and relevant shopping environment, ensuring you obtain the best offers that align with your needs." wikitext text/x-wiki As you browse, these types of targeted discounts not only boost your purchasing experience yet additionally motivate commitment. By leveraging your browsing history and acquisition trends, companies are developing a [https://anotepad.com/notes/r5ee45cw Learn More] engaging and relevant shopping environment, ensuring you obtain the best offers that align with your needs. a0b7831776b6a52438b710616203672aa387694d User:JacquelineShaffe 2 1831 2686 2025-02-11T17:28:12Z JacquelineShaffe 2150 Created page with "Considering that you browse, these targeted discounts not just boost your purchasing experience yet also motivate commitment. By utilize your surfing history and purchase trends, business are producing a more engaging and appropriate purchasing setting, guaranteeing you obtain the best bargains that straighten with your requirements.<br><br>Here is my site: [http://www.neighborhoodlink.com/people/CaitlindfLivingston Additional Resources]" wikitext text/x-wiki Considering that you browse, these targeted discounts not just boost your purchasing experience yet also motivate commitment. By utilize your surfing history and purchase trends, business are producing a more engaging and appropriate purchasing setting, guaranteeing you obtain the best bargains that straighten with your requirements.<br><br>Here is my site: [http://www.neighborhoodlink.com/people/CaitlindfLivingston Additional Resources] 0a604bb4aa780c97eac7a88d645a80c44725c419 User:AngieVerbrugghen 2 1832 2687 2025-02-11T18:55:58Z AngieVerbrugghen 2151 Created page with "As you browse, these targeted discounts not only boost your shopping experience yet likewise motivate loyalty. By take advantage of your browsing history and purchase patterns, firms are creating an extra appealing and appropriate buying environment, ensuring you obtain the very best offers that line up with your demands.<br><br>Also visit my blog - [https://kitsplit.com/SamsondfHernandez/ Read My Reviews Here]" wikitext text/x-wiki As you browse, these targeted discounts not only boost your shopping experience yet likewise motivate loyalty. By take advantage of your browsing history and purchase patterns, firms are creating an extra appealing and appropriate buying environment, ensuring you obtain the very best offers that line up with your demands.<br><br>Also visit my blog - [https://kitsplit.com/SamsondfHernandez/ Read My Reviews Here] 700b0b019ab237ff1fbb5def34f4c46f89b2ae73 User:GCJMaryellen 2 1833 2688 2025-02-11T19:08:57Z GCJMaryellen 2153 Created page with "Consider contrasting panels throughout different suppliers to identify any type of inconsistencies in quality. Ultimately, a thorough evaluation of product quality and certifications will aid you make educated choices, making certain that [https://www.root-me.org/DamiondfJennings?lang=en Get Idea About Your Bit] financial investment in solar technology is audio." wikitext text/x-wiki Consider contrasting panels throughout different suppliers to identify any type of inconsistencies in quality. Ultimately, a thorough evaluation of product quality and certifications will aid you make educated choices, making certain that [https://www.root-me.org/DamiondfJennings?lang=en Get Idea About Your Bit] financial investment in solar technology is audio. 9d453d104f991d58333c1c3cdb13db92a5115843 User:IsabelleDye9 2 1834 2689 2025-02-11T19:32:23Z IsabelleDye9 2154 Created page with "Consider comparing panels throughout various providers to recognize any type of discrepancies in quality. Ultimately, a complete evaluation of product quality and qualifications will assist you make educated decisions, making certain that your financial investment in solar modern technology is sound.<br><br>Feel free to visit my web page: [https://www.furvilla.com/profile/229061 Visit Here]" wikitext text/x-wiki Consider comparing panels throughout various providers to recognize any type of discrepancies in quality. Ultimately, a complete evaluation of product quality and qualifications will assist you make educated decisions, making certain that your financial investment in solar modern technology is sound.<br><br>Feel free to visit my web page: [https://www.furvilla.com/profile/229061 Visit Here] 23c04c4220e265a06f04ab201ec2f5a06389284a User:TyreeWilloughby 2 1835 2690 2025-02-11T19:49:26Z TyreeWilloughby 2157 Created page with "Digital marketing company in Prague gives tailored services to aid businesses develop online. From search engine optimisation and PPC to social media and content marketing, they craft efficient approaches to increase exposure and [http://classicalmusicmp3freedownload.com/ja/index.php?title=Checking_Out_The_Advancement_Of_Digital_Advertising_In_Prague:_Essential_Insights_And_Forecasts Additional Resources] draw in target market. Their proficiency makes certain measurable..." wikitext text/x-wiki Digital marketing company in Prague gives tailored services to aid businesses develop online. From search engine optimisation and PPC to social media and content marketing, they craft efficient approaches to increase exposure and [http://classicalmusicmp3freedownload.com/ja/index.php?title=Checking_Out_The_Advancement_Of_Digital_Advertising_In_Prague:_Essential_Insights_And_Forecasts Additional Resources] draw in target market. Their proficiency makes certain measurable results that improve engagement and drive conversions for businesses of all sizes.<br><br>my blog ... [https://twitback.com/post/84897 Additional Resources] dd7e48d0747300f9869bc606653c7c19de6d94e2 User:ErnestineKrug18 2 1836 2691 2025-02-11T19:51:06Z ErnestineKrug18 2158 Created page with "Take into consideration contrasting panels throughout various distributors to determine any type of discrepancies in quality. Inevitably, a comprehensive analysis of item quality and certifications will aid you make educated decisions, guaranteeing that your investment in solar technology is audio.<br><br>Feel free to visit my web-site :: [https://www.universe.com/users/aaliyah-farley-NXQ2Y8 Read This Post Here]" wikitext text/x-wiki Take into consideration contrasting panels throughout various distributors to determine any type of discrepancies in quality. Inevitably, a comprehensive analysis of item quality and certifications will aid you make educated decisions, guaranteeing that your investment in solar technology is audio.<br><br>Feel free to visit my web-site :: [https://www.universe.com/users/aaliyah-farley-NXQ2Y8 Read This Post Here] cd7236f85743ce3f1452f45987d332e6d0fec4f1 User:MamieNunan29 2 1837 2692 2025-02-12T06:10:28Z MamieNunan29 2161 Created page with "When a photo voltaic supplier makes sure a stable supply of solar panels, solar energy adoption increases. Photo-voltaic dealers play a crucial job in making solar power available all over Europe, supporting non commercial, office, and [https://drapia.org/11-WIKI/index.php/The_Reason_Why_Every_Solar_Installer_Needs_A_Reputable_Photovoltaic_Representative_In_Europe get more info] industrial projects. Their know-how in coordinations and product schedule boosts the switch..." wikitext text/x-wiki When a photo voltaic supplier makes sure a stable supply of solar panels, solar energy adoption increases. Photo-voltaic dealers play a crucial job in making solar power available all over Europe, supporting non commercial, office, and [https://drapia.org/11-WIKI/index.php/The_Reason_Why_Every_Solar_Installer_Needs_A_Reputable_Photovoltaic_Representative_In_Europe get more info] industrial projects. Their know-how in coordinations and product schedule boosts the switch to sustainable energy solutions, lessening dependancy on fossil fuels.<br><br>my page [https://musclelove.com/profile/MalikdfFarmer Get More Info] 5d1c1df649d83323464a7c48f5f39b4794f0b97d User:AracelisDeLoitte 2 1838 2693 2025-02-12T07:26:06Z AracelisDeLoitte 2163 Created page with "Leveraging the knowledge of regional IT firms and accepting cloud innovations, companies in Prague can disclose brand-new efficiencies and drive development, strengthening the important duty that IT support plays in their digital journeys.<br><br>my web-site: [https://www.chordie.com/forum/profile.php?id=2214649 Check Our Editor Note]" wikitext text/x-wiki Leveraging the knowledge of regional IT firms and accepting cloud innovations, companies in Prague can disclose brand-new efficiencies and drive development, strengthening the important duty that IT support plays in their digital journeys.<br><br>my web-site: [https://www.chordie.com/forum/profile.php?id=2214649 Check Our Editor Note] 6998bae8aea8428455f6f0ebd2cb54d8b8876c76 User:LBVArden6278375 2 1839 2694 2025-02-17T04:54:49Z LBVArden6278375 2174 Created page with "Through applying these effective techniques, you'll be well on your means to fast-tracking your clinical research profession. Whether you're seeking direction from experienced mentors, polishing your writing skills, or utilizing innovative tools to boost your study, [https://andyfreund.de/wiki/index.php?title=Exactly_How_To_Boost_Your_Medical_Investigation_Profession:_Proven_Systems_For_Excellence View Our Editors Post] the key is actually to maintain things easy and ef..." wikitext text/x-wiki Through applying these effective techniques, you'll be well on your means to fast-tracking your clinical research profession. Whether you're seeking direction from experienced mentors, polishing your writing skills, or utilizing innovative tools to boost your study, [https://andyfreund.de/wiki/index.php?title=Exactly_How_To_Boost_Your_Medical_Investigation_Profession:_Proven_Systems_For_Excellence View Our Editors Post] the key is actually to maintain things easy and efficient. With the ideal technique and a concentrate on building your scholastic credibility, you may effectively get through the difficulties of clinical research and end up being a leading have a place in the field. And keep in mind, sturdy suggestions like a clinical study Recommendation letter design template or even Recommendation letter for medical investigation professionals will definitely help you en route, guaranteeing that your scholarly journey is actually sustained and commemorated.<br><br>Here is my web-site - [https://www.tumblr.com/whenyouworkatflaconi/775619048843165696/from-unaware-to-nih-funded-precisely-why-clinical View Our Editors Post] c16d9eae84db0dfac76ab5a0e490e97ef960f18f User:NedBaumgardner 2 1840 2695 2025-02-17T04:56:43Z NedBaumgardner 2175 Created page with "Through executing these proven strategies, you'll be actually well on your method to fast-tracking your clinical study profession. Whether you are actually looking for advice [https://www.akonter.com/story/crafting-a-perfect-referral-for-medical-analysts/ Read More From Here] experienced mentors, honing your writing capabilities, or even making use of advanced tools to enhance your research, the key is to maintain factors simple and dependable. Along with the right metho..." wikitext text/x-wiki Through executing these proven strategies, you'll be actually well on your method to fast-tracking your clinical study profession. Whether you are actually looking for advice [https://www.akonter.com/story/crafting-a-perfect-referral-for-medical-analysts/ Read More From Here] experienced mentors, honing your writing capabilities, or even making use of advanced tools to enhance your research, the key is to maintain factors simple and dependable. Along with the right method and a concentrate on building your academic credibility and reputation, you can effectively navigate the complications of clinical analysis and come to be a leading have a place in the industry. And don't forget, tough referrals like a clinical investigation Referral letter design template or Recommendation letter for medical investigation experts will help you along the road, ensuring that your scholarly quest is actually sustained and celebrated. 52212558c116617911c1e07e909be30a26efe363 User:HTBDann37474 2 1841 2696 2025-02-19T10:36:52Z HTBDann37474 2207 Created page with "With the fouad WhatsApp most current variation apk download, you can accessibility a lot [https://hackmd.io/@ZoieMeza/when-should-you-consider-switching-to-fouad-whatsapp-apk Find Out More] unique sticker labels and emojis to express yourself creatively. These kinds of improvements make messaging practical and delightful, establishing Fouad WhatsApp in addition to conventional choices." wikitext text/x-wiki With the fouad WhatsApp most current variation apk download, you can accessibility a lot [https://hackmd.io/@ZoieMeza/when-should-you-consider-switching-to-fouad-whatsapp-apk Find Out More] unique sticker labels and emojis to express yourself creatively. These kinds of improvements make messaging practical and delightful, establishing Fouad WhatsApp in addition to conventional choices. f257cc1979c5a5e20800780609eb30a043b5ac0e User:JoannaFreel69 2 1842 2697 2025-02-19T11:22:38Z JoannaFreel69 2206 Created page with "Along with the fouad WhatsApp latest version apk download, you can gain access to a lot more unique sticker labels and emojis to share yourself creatively. These kinds of improvements make messaging functional and pleasurable, establishing Fouad WhatsApp aside from conventional options.<br><br>Also visit my web page - [https://www.callupcontact.com/b/businessprofile/Fouad_WhatsApp_APK/9537508 Check Our Top Pick]" wikitext text/x-wiki Along with the fouad WhatsApp latest version apk download, you can gain access to a lot more unique sticker labels and emojis to share yourself creatively. These kinds of improvements make messaging functional and pleasurable, establishing Fouad WhatsApp aside from conventional options.<br><br>Also visit my web page - [https://www.callupcontact.com/b/businessprofile/Fouad_WhatsApp_APK/9537508 Check Our Top Pick] 01a19a76a8eeba29fc9bc0bb2a29aceadd486aba User:Flora20G52536 2 1843 2698 2025-02-19T11:24:05Z Flora20G52536 2208 Created page with "Along with the fouad WhatsApp newest version apk download, you can accessibility even more distinct sticker labels and emojis to express yourself artistically. These enhancements make messaging useful and enjoyable, establishing Fouad WhatsApp apart from typical choices.<br><br>Here is my website - [https://penzu.com/p/8d43becff3f8734a View Source]" wikitext text/x-wiki Along with the fouad WhatsApp newest version apk download, you can accessibility even more distinct sticker labels and emojis to express yourself artistically. These enhancements make messaging useful and enjoyable, establishing Fouad WhatsApp apart from typical choices.<br><br>Here is my website - [https://penzu.com/p/8d43becff3f8734a View Source] f85c06e3ae745b6dbc03e40190a4de26c949511a User:DelLeverett5 2 1844 2699 2025-02-21T06:05:13Z DelLeverett5 2221 Created page with "My name is Glen Mrozek. Iowa has been his living place. To read comics 1 of the of factors I love most. Office supervising is a few things i do. Go to my website as part of your out more: https://Www.Digitaljournal.com/pr/news/press-advantage/professional-assistance-available-tenant-eviction-1773806284.html<br><br>Also visit my web page: [https://Www.Digitaljournal.com/pr/news/press-advantage/professional-assistance-available-tenant-eviction-1773806284.html property mana..." wikitext text/x-wiki My name is Glen Mrozek. Iowa has been his living place. To read comics 1 of the of factors I love most. Office supervising is a few things i do. Go to my website as part of your out more: https://Www.Digitaljournal.com/pr/news/press-advantage/professional-assistance-available-tenant-eviction-1773806284.html<br><br>Also visit my web page: [https://Www.Digitaljournal.com/pr/news/press-advantage/professional-assistance-available-tenant-eviction-1773806284.html property management Companies that help With Marketing] eb8b850f9c467500ba9143414fdcbd4bd3f0ea98 User:MarcelaSimpkinso 2 1845 2700 2025-02-22T01:15:10Z MarcelaSimpkinso 2227 Created page with "Glen is what's written on his birth certificate and he totally loves this headline. To model railways exactly what I do every helpless. Nevada has been my living place and my family loves that. The job she's been occupying countless soft drinks is an accounting officer. He's not godd at design a person might in order to be check his website: https://www.youtube.com/channel/UCz3i5CwTGQntMgPk9HiN48w<br><br>Also visit my webpage - [https://www.youtube.com/channel/UCz3i5CwTG..." wikitext text/x-wiki Glen is what's written on his birth certificate and he totally loves this headline. To model railways exactly what I do every helpless. Nevada has been my living place and my family loves that. The job she's been occupying countless soft drinks is an accounting officer. He's not godd at design a person might in order to be check his website: https://www.youtube.com/channel/UCz3i5CwTGQntMgPk9HiN48w<br><br>Also visit my webpage - [https://www.youtube.com/channel/UCz3i5CwTGQntMgPk9HiN48w Real estate agency] 66a6c7235b7ca8088177b3b6aedcf22b1aa1d865